Перейти к контенту
Всем привет! Уже скоро 5:40 утра, а я все кручу-верчу 1С, а она чето не работает
1С:Предприятие 8.3 (8.3.4.496)
Альфа-Авто: Автосалон+Автосервис+Автозапчасти. Редакция 4.1 (4.1.01.22)
Суть проблемы: обмен — РИБ(2 узла), для новых документов не регистрируются изменения для узлов, авторегистрация установлена в Запретить, если после создания документа его перепровести — все изменения зарегистрируются как надо.
Механизм: в обработчике события документа ПриЗаписи вызывается функция в которой получается список узлов для регистрации и собственно регистрируется. Сначала регистрируется сам документ, потом по очереди в цикле его движения. Выглядит это так:
Для каждого НаборЗаписей из ДвигаемыеРегистры Цикл
МетаданныеРегистр = НаборЗаписей.Метаданные();
// отсечем сразу, чтобы потом не обращаться лишний раз к процедуре..
Если (ПланОбменаМетаданныеСостав.Найти(МетаданныеРегистр) = неопределено) Тогда
Продолжить; // нет в составе плана обмена
КонецЕсли;
Если ЭтоУдаление Тогда
// При удалении объекта, если у нас уже были зарегистрированы его движения
//правильнее будет их отменить — пусть в сообщении отправится одно лишь удаление объекта
ПланыОбмена.УдалитьРегистрациюИзменений(МассивУзловПолучателей,НаборЗаписей);
Иначе
//ПланыОбмена.ЗарегистрироватьИзменения(МассивУзловПолучателей,НаборЗаписей);
// Виталий + 2014.08.06
Для Каждого УзелПолучатель Из МассивУзловПолучателей Цикл
НаборЗаписей.ОбменДанными.Получатели.Добавить(УзелПолучатель);
КонецЦикла;
// Виталий — 2014.08.06
КонецЕсли;
КонецЦикла;
погуглив обнаружил, что вместо этого ЗарегистрироватьИзменения можно использовать это ОбменДанными.Получатели.Добавить ну и сделал так.
Все заработало, только хотел начинать радоваться как обнаружил что это работает для всех регистров кроме одного! Ну все одинаков и регистры однотипные(регистры накопления), помогите люди знающие, помогите люди знающие, ну шо ей, этой одинС надо то?
Driven 12 / 14 / 1 Регистрация: 24.12.2010 Сообщений: 74 |
||||
1 |
||||
1C 8.x 11.03.2015, 12:37. Показов 3851. Ответов 7 Метки нет (Все метки)
Расскажу что мне нужно и что у меня получилось:
и в итоге я получаю ошибку Очень нужна помощь, без помощи придется еще очень долго разбираться самому. Буду очень благодарен!
__________________ 0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
11.03.2015, 12:37 |
Ответы с готовыми решениями: Зашел в тупик Зашел в тупик! Зашел в тупик с курсовой Зашел в тупик с отчетом… 7 |
Dethmontt Модератор 3697 / 2897 / 569 Регистрация: 10.03.2011 Сообщений: 11,398 Записей в блоге: 1 |
||||
11.03.2015, 13:39 |
2 |
|||
Сообщение было отмечено Driven как решение РешениеТы справку читать будешь или нет? У свойства Получатели метода Добавить() в СП описано какой тип нужно подавать в качестве параметра
1 |
Driven 12 / 14 / 1 Регистрация: 24.12.2010 Сообщений: 74 |
||||
11.03.2015, 15:05 [ТС] |
3 |
|||
Решил вот таким способом
Добавлено через 23 секунды Добавлено через 3 минуты 0 |
Модератор 3697 / 2897 / 569 Регистрация: 10.03.2011 Сообщений: 11,398 Записей в блоге: 1 |
|
11.03.2015, 15:30 |
4 |
В тот момент что указано в подписке на событие 1 |
12 / 14 / 1 Регистрация: 24.12.2010 Сообщений: 74 |
|
11.03.2015, 15:35 [ТС] |
5 |
я немного не правильно поставил вопрос. Когда срабатывает Перед Записью (на какой стадии после открытия регистра) ? И сразу еще один вопрос, как поймать изменения ( Номенклатуру ) в регистре накопления при отмене проведения документа? 0 |
Модератор 3697 / 2897 / 569 Регистрация: 10.03.2011 Сообщений: 11,398 Записей в блоге: 1 |
|
11.03.2015, 15:57 |
6 |
В тот момент что указано в подписке на событие
Перед Записью (на какой стадии после открытия регистра) ? эээээээээээ… Добавлено через 1 минуту
И сразу еще один вопрос, как поймать изменения ( Номенклатуру ) в регистре накопления при отмене проведения документа? Например запросом 1 |
12 / 14 / 1 Регистрация: 24.12.2010 Сообщений: 74 |
|
11.03.2015, 16:00 [ТС] |
7 |
Например запросом а можно поподробнее? это как я понял Перед Записью регистра запрос должен отрабатывать? 0 |
Модератор 3697 / 2897 / 569 Регистрация: 10.03.2011 Сообщений: 11,398 Записей в блоге: 1 |
|
11.03.2015, 16:05 |
8 |
Driven, читать литературу — потом спрашивать Литература по 1С программированию 0 |
Смотрю в отладчике Получатель(узел) в Объект.обменДанными.Получатели заполнен. Гарантирует ли это, что объект будет в таблице зарегистрированных изменений для узла?
Если это на момент окончания события ПередЗаписью (с учетом всех подписок), тогда да
те в другом месте кодом порежут регистрацию и привет кот1ёнку
странно. Точно не надо выполнять ЗарегистрироватьИзменения после установки получателей? У меня из базы магазина не регистрируется док, хотя в получателях он есть. не могу понять, где это отсекается
ПередЗаписью и соответствующие подписки. А документ точно записывается, там отказ не срабатывает?
все записывается, все срабатывает. добавляет в подписке перед записью, в обработчике проведения объект с получателями
а проверяешь как регистрацию -обработкой «регистрация изменений» -запросом к таблице изменений -в файле выгрузки -в базе приемнике? Отсутствие документа в 3-4 пунктах не обязательно означает проблемы с регистрацией.
Тэги:
Комментарии доступны только авторизированным пользователям
11.03.2020
Делал собственную синхронизацию данных между 1С БП 3 и самописной конфигурацией. Решил воспользоваться для этих целей регистром сведений СоответствияОбъектовИнформационныхБаз, который имеется в бухгалтерии.
Одним из измерений этого регистра является узел плана обмена. Для этого я решил использовать план обмена СинхронизацияДанныхЧерезУниверсальныйФормат. Создал узел и добавил записи в этот регистр(программно). Но когда попытался изменить или удалить запись (вручную), то получил сообщение об ошибке: «Несоответствие параметров(1)» в модуле набора записей регистра СоответствияОбъектовИнформационныхБаз в строке:
Процедура ПередЗаписью(Отказ, Замещение) .... ОбменДанными.Получатели.Добавить(Отбор.УзелИнформационнойБазы.Значение); КонецПроцедуры ...
В качестве получателя передается узел плана обмена СинхронизацияДанныхЧерезУниверсальныйФормат. Но в свою очередь регистр сведений СоответствияОбъектовИнформационныхБаз не входит в состав плана обмена СинхронизацияДанныхЧерезУниверсальныйФормат, поэтому возникает ошибка.
Можно выбрать план обмена, который включает в свой состав нужный мне регистр, в частности «МиграцияПриложений», но тогда возможны другие проблемы. В частности, если в БП есть какие-то свои объекты(например регистры, которые заполняются при проведении документов), то они должны быть включены в состав «МиграцияПриложений».
Мне показалось более легкий, в плане воздействия на базу, метод — использование все таки плана обмена «СинхронизацияДанныхЧерезУниверсальныйФормат».
0
Ручная регистрации изменений для узла
Для ручной регистрации изменений можно в модуле объекта (документа) определить следующий обработчик события
Код 1C v 8.х
Процедура ПередЗаписью(Отказ)
Узел=ПланыОбмена.УдаленныеСклады.НайтиПоКоду("Оптовый");
Объект.ОбменДанными.Получатели.Удалить(Узел);
КонецПроцедуры
В глобальном общем модуле определим следующую процедуру:
Код 1C v 8.х
Процедура ВключитьРегистрацию(ОбменДанными, Склад) Экспорт
//Получение узлов для конкретного склада
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| УдаленныеСклады.Ссылка
|ИЗ
| ПланОбмена.УдаленныеСклады КАК УдаленныеСклады
|
|ГДЕ
| (УдаленныеСклады.Склад = &Склад ИЛИ
| УдаленныеСклады.Склад = &ПустойСклад) И
| УдаленныеСклады.Ссылка <> &ЭтотУзел";
Запрос.УстановитьПараметр("Склад", Склад);
Запрос.УстановитьПараметр("ПустойСклад",
Справочники.Склады.ПустаяСсылка());
Запрос.УстановитьПараметр("ЭтотУзел",
ПланыОбмена.УдаленныеСклады.ЭтотУзел());
Выборка = Запрос.Выполнить().Выбрать();
// Регистрация изменений для выбранных узлов
Пока Выборка.Следующий() Цикл
ОбменДанными.Получатели.Добавить(Выборка.Ссылка);
КонецЦикла;
КонецПроцедуры
Обе рассмотренные процедуры одновременно решают две задачи:
Регистрируют изменения для узла, у которого реквизит Склад совпадает со складом, указанным в документе.
Производят проверку (для ранее существовавших документов), не изменился ли склад.
Если склад изменился, то производится регистрация изменения для узла, значение реквизита Склад которого соответствует старому значению документа (хранимому на момент проверки в информационной базе). Далее в момент выгрузки изменений данная регистрация может быть «подменена» на объект УдалениеОбъекта, что приведет к удалению накладной, «не свойственной» узлу.
Страница 1 из 2
-
Добрый день.1с УПП платформа 2 редакция 3. версия 58.2 .
Использую внутренние шаблоны в частности Обмен 1с УПП.
Т.е. УПП С УПП все настроил для обмена. Выгрузка из источник
прошла нормально. Загрузка в приемник с ошибками (обмен настроил на обмен 1 типа документа
Заказ поставщику) ошибки- на контрагентеОшибка записи объекта
ТипОбъекта = Договор контрагента
Объект = <>
ОписаниеОшибки = Ошибка при вызове метода контекста (Записать): Ошибка при выполнении обработчика — ‘ПередЗаписью’: {ОбщийМодуль.ПроцедурыОбменаУПП.Модуль(709)}: Ошибка при вызове метода контекста (Добавить): Несоответствие типов (параметр номер ‘1’)
ПозицияМодуля = Обработка.ОбменДаннымиXML.МодульОбъекта(3778)
КодСообщения = 26
Техническая информация:
{Обработка.ОбменДаннымиXML.МодульОбъекта(3785)}: Ошибка записи объектаВот такая ошибка при загрузки. А ошибка ниже стала появлятся как документ стаи обмениваться.
Это конечно ссылка. Контрагент. Подскажите как работать с ссылками если мне не обязательно вести справочник Контрагента. Или все таки надо. а как приредактировании избавится
от ошибки при редактировании . Подскажите пожалуйста. -
Offline
TerANik
Профессионал в 1С- Регистрация:
- 19 ноя 2014
- Сообщения:
- 1.281
- Симпатии:
- 98
- Баллы:
- 54
т.е. вы собираетесь переносить справочник Договора, а справочник владелец нет?
-
Вобщто это проблема серезная если менеджер не может оформить документ
и когда на запись документа и проводку влияет обмен этого документа— Объединение сообщений, 1 дек 2014 —
Да не собирался ни договор ни контрагента
-
Offline
nomad_irk
Гуру в 1С- Регистрация:
- 20 окт 2008
- Сообщения:
- 9.900
- Симпатии:
- 1.035
- Баллы:
- 204
НаличиеОбменаУПП — это один из параметров сеанса.
Необходимо проверить каким образом он устанавливается и почему возникает ошибка получения его значения. -
Но меня сейчас более всего волнует формирование нового документа и вмешательство
обмена на сохранение и проведение его. Что за хрень с этим контролем по обмену ? -
Offline
TerANik
Профессионал в 1С- Регистрация:
- 19 ноя 2014
- Сообщения:
- 1.281
- Симпатии:
- 98
- Баллы:
- 54
При записи документа происходит регистрация в узлах, в этом наверно и проблема, регистрация по причине того что что то не так с выше описанным параметром сеанса пройти не может.
-
Offline
nomad_irk
Гуру в 1С- Регистрация:
- 20 окт 2008
- Сообщения:
- 9.900
- Симпатии:
- 1.035
- Баллы:
- 204
Именно так, т.к. используется обмен по правилам, судя по входным данным.
-
Знаю что это параметр сеанса.Почему контроль параметра сеанса обмена не в теме
контролируется. Я же обменялся нормально. И теперь этот домоклов меч постоянно висеть надо мной будет .сколько их параметров- много вдруг слетит один все ищи. Как искать В Отладчике возможно
только при передачи. Здесь как его найду просматривая код. А если документ
в нескольких планах обменивается. Неужели у меня только такая проблема.
Коллеги , у кого такая же ж. как вы поступаете. -
Offline
nomad_irk
Гуру в 1С- Регистрация:
- 20 окт 2008
- Сообщения:
- 9.900
- Симпатии:
- 1.035
- Баллы:
- 204
Вероятно, что вы делаете что-то не так, при настройке обмена между узлами.
Типовой обмен вполне работоспособен.
Рассказывайте с самого начала, как настраивали обмен, что в настройках обмена включали/выключали….в общем все детали даже мелкие, пусть они вам даже не понятные…. -
Не верю. Не может регистрация в узлах проходить по вновь созданному документу .
Он еще может не удален. Почему не перед обменом. А ПРИ ФОРМИРОВАНИИ.
Документ только родился а уже в планах. -
Offline
TerANik
Профессионал в 1С- Регистрация:
- 19 ноя 2014
- Сообщения:
- 1.281
- Симпатии:
- 98
- Баллы:
- 54
Что вот это за строка, дайте кусок кода
ОбщийМодуль.ПроцедурыОбменаУПП.Модуль(709)}: Ошибка при вызове метода контекста (Добавить):
Сам нашелЕсли МассивУзловДляРегистрацииПриЗаписи <> Неопределено Тогда
// для регистрации объекта
Для Каждого Элемент Из МассивУзловДляРегистрацииПриЗаписи ЦиклИсточник.ОбменДанными.Получатели.Добавить(Элемент);
КонецЦикла;
КонецЕсли;
Вообще он ругается на то что Элемент это не узел а непонятно что, попробуйте отладчиком пройтись
— Объединение сообщений, 1 дек 2014 —
Эть как самоуверенно, а когда же она должна проходить регистрация? Как раз в момент записи документа.
-
Offline
nomad_irk
Гуру в 1С- Регистрация:
- 20 окт 2008
- Сообщения:
- 9.900
- Симпатии:
- 1.035
- Баллы:
- 204
Снова упираемся в то, что Источник.ОбменДанными.Получатели не содержит то, что должно в нем содержаться, судя по контексту кода.
-
Сервис Обмен данными в упп 8 Открывается помошник настройки с ним все делал.
там галочки не ставиш
после выбрал вариант
Управление производственным предприятием 1.3 — Тип 1.2 в списке не было и выбрал вариант только туда(одностороний) все. Установил файловый обмен и директорию.Все. более ничего не делал.
Все заработало. и ошибки по делу выдаются но при этом по тем документам которые передаю такая вот проблема -
Offline
nomad_irk
Гуру в 1С- Регистрация:
- 20 окт 2008
- Сообщения:
- 9.900
- Симпатии:
- 1.035
- Баллы:
- 204
На стороне приемника настраивали обмен? Там так же необходимо указать узел.
По этому узлу система поймет, что необходим обмен УПП-УПП, взведет нужный параметр сеанса…… -
Существует Этап обмена Загрузка Здесь документы по узлам должны распихиваться
а Источник.ОбменДанными.Получатели.Добавить(Элемент);
Работать должен правильно он уже произвел обмен.
;
— Объединение сообщений, 1 дек 2014 —
Нет на стороге передающей где прошло описание чем обмениваться при этом
помошник формируеет файл настройки для приемной стороны.
На приемной стороне он подгружается и пара для обмена готова.
Посмотрите последние уроки ГИЛЕВА по обмену Этот помошник вставлен в конфигурацию в эту версию и БСП 2.1 -
Offline
TerANik
Профессионал в 1С- Регистрация:
- 19 ноя 2014
- Сообщения:
- 1.281
- Симпатии:
- 98
- Баллы:
- 54
Стоп…
У вас сейчас проблема я так понял заключается в том что в центральной базе менеджер не может записать документ? так? -
И еще все это с документом , когда нельзя записать противоречит классическим правилам
регистрации информации для обмена. не находите ли. Документ естьдокумент когда он проведен.
По класике он регистрируется для обмена. ПОтом только на этапе загрузки все зарегистированые
для обмена документы попадают в обменник.— Объединение сообщений, 1 дек 2014 —
У вас сейчас проблема я так понял заключается в том что в центральной базе менеджер не может записать документ? так?
У нас проблема что менеджер влез в процесс формирования документа и мешает его сформировать,
провести , мешает работе живых менеджеров.
А так Вы правы. он не дает добро записи -
Offline
TerANik
Профессионал в 1С- Регистрация:
- 19 ноя 2014
- Сообщения:
- 1.281
- Симпатии:
- 98
- Баллы:
- 54
Д
Где это вы такое вычитали , что документ есть документ когда он проведен? Документ есть документ когда он существует в базе как объект, а проведен он или нет это уже другая песня.
Вопрос в том как настроены правила обмена,выгружать только проведенные или нетИ как бы вы не хотели регистрация объектов происходит перед записью, а не после проведения… у 1С по факту нет обработчика после проведения.
Процедура ПередЗаписьюДокументаДляОбменаУПППередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
Если Отказ ИЛИ НЕ ПараметрыСеанса.НаличиеОбменаУПП Тогда
Возврат;
КонецЕсли;ПередЗаписьюСсылочногоТипаДляОбменаПоОрганизации(Источник, Отказ, «Документы»);
КонецПроцедуры
Вот процедура которая отрабатывает и если не инициализирован параметр сеанса он на него ругается
Воо..
Запрос = Новый Запрос;
Запрос.Текст = «ВЫБРАТЬ
| ОбменУППУПП.Ссылка,
| ОбменУППУПП.ДатаНачалаВыгрузкиДокументов КАК ДатаНачалаВыгрузкиДокументов
|ИЗ
| ПланОбмена.ОбменУППУПП КАК ОбменУППУПП
|ГДЕ
| ОбменУППУПП.Ссылка <> &ЭтотУзелПолный»;Запрос.УстановитьПараметр(«ЭтотУзелПолный», ПланыОбмена.ОбменУППУПП.ЭтотУзел());
РезультатЗапроса = Запрос.Выполнить();
ЕстьУзлыОбменаУППУПП = НЕ РезультатЗапроса.Пустой();
ПараметрыСеанса.НаличиеОбменаУПП = ЕстьУзлыОбменаУППУПП;
куда копать надо.
Последнее редактирование: 1 дек 2014
-
Вот процедура которая отрабатывает и если не инициализирован параметр сеанса он на него ругается
Если коротко то все вышеописанное можно сформулировать так.У документов которыми обмениваются при настройке плана обмена поменяли код по событию перед
записью() . Теперь он (менеджер плана обмена…естественно анализируют наличие плана обмена , в котором учавствует документ. Если такого нет (но документ должен обмениваться ! ) то запись запрещена.поскольку это считается ошибкой,По сути это так выглядит. Или я не прав ?
-
Offline
TerANik
Профессионал в 1С- Регистрация:
- 19 ноя 2014
- Сообщения:
- 1.281
- Симпатии:
- 98
- Баллы:
- 54
Если честно из вышеописанного я ничего не понял, можно как то детализированей
Страница 1 из 2
Всем привет! Уже скоро 5:40 утра, а я все кручу-верчу 1С, а она чето не работает
1С:Предприятие 8.3 (8.3.4.496)
Альфа-Авто: Автосалон+Автосервис+Автозапчасти. Редакция 4.1 (4.1.01.22)
Суть проблемы: обмен — РИБ(2 узла), для новых документов не регистрируются изменения для узлов, авторегистрация установлена в Запретить, если после создания документа его перепровести — все изменения зарегистрируются как надо.
Механизм: в обработчике события документа ПриЗаписи вызывается функция в которой получается список узлов для регистрации и собственно регистрируется. Сначала регистрируется сам документ, потом по очереди в цикле его движения. Выглядит это так:
Для каждого НаборЗаписей из ДвигаемыеРегистры Цикл
МетаданныеРегистр = НаборЗаписей.Метаданные();
// отсечем сразу, чтобы потом не обращаться лишний раз к процедуре..
Если (ПланОбменаМетаданныеСостав.Найти(МетаданныеРегистр) = неопределено) Тогда
Продолжить; // нет в составе плана обмена
КонецЕсли;
Если ЭтоУдаление Тогда
// При удалении объекта, если у нас уже были зарегистрированы его движения
//правильнее будет их отменить — пусть в сообщении отправится одно лишь удаление объекта
ПланыОбмена.УдалитьРегистрациюИзменений(МассивУзловПолучателей,НаборЗаписей);
Иначе
//ПланыОбмена.ЗарегистрироватьИзменения(МассивУзловПолучателей,НаборЗаписей);
// Виталий + 2014.08.06
Для Каждого УзелПолучатель Из МассивУзловПолучателей Цикл
НаборЗаписей.ОбменДанными.Получатели.Добавить(УзелПолучатель);
КонецЦикла;
// Виталий — 2014.08.06
КонецЕсли;
КонецЦикла;
погуглив обнаружил, что вместо этого ЗарегистрироватьИзменения можно использовать это ОбменДанными.Получатели.Добавить ну и сделал так.
Все заработало, только хотел начинать радоваться как обнаружил что это работает для всех регистров кроме одного! Ну все одинаков и регистры однотипные(регистры накопления), помогите люди знающие, помогите люди знающие, ну шо ей, этой одинС надо то?
Driven 12 / 14 / 1 Регистрация: 24.12.2010 Сообщений: 74 |
||||
1 |
||||
1C 8.x 11.03.2015, 12:37. Показов 4091. Ответов 7 Метки нет (Все метки)
Расскажу что мне нужно и что у меня получилось:
и в итоге я получаю ошибку Очень нужна помощь, без помощи придется еще очень долго разбираться самому. Буду очень благодарен!
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
11.03.2015, 12:37 |
Ответы с готовыми решениями: Зашел в тупик Зашел в тупик! Зашел в тупик с курсовой Зашел в тупик с отчетом… 7 |
Dethmontt Модератор 3724 / 2918 / 575 Регистрация: 10.03.2011 Сообщений: 11,491 Записей в блоге: 1 |
||||
11.03.2015, 13:39 |
2 |
|||
Сообщение было отмечено Driven как решение РешениеТы справку читать будешь или нет? У свойства Получатели метода Добавить() в СП описано какой тип нужно подавать в качестве параметра
1 |
Driven 12 / 14 / 1 Регистрация: 24.12.2010 Сообщений: 74 |
||||
11.03.2015, 15:05 [ТС] |
3 |
|||
Решил вот таким способом
Добавлено через 23 секунды Добавлено через 3 минуты
0 |
Модератор 3724 / 2918 / 575 Регистрация: 10.03.2011 Сообщений: 11,491 Записей в блоге: 1 |
|
11.03.2015, 15:30 |
4 |
В тот момент что указано в подписке на событие
1 |
12 / 14 / 1 Регистрация: 24.12.2010 Сообщений: 74 |
|
11.03.2015, 15:35 [ТС] |
5 |
я немного не правильно поставил вопрос. Когда срабатывает Перед Записью (на какой стадии после открытия регистра) ? И сразу еще один вопрос, как поймать изменения ( Номенклатуру ) в регистре накопления при отмене проведения документа?
0 |
Модератор 3724 / 2918 / 575 Регистрация: 10.03.2011 Сообщений: 11,491 Записей в блоге: 1 |
|
11.03.2015, 15:57 |
6 |
В тот момент что указано в подписке на событие
Перед Записью (на какой стадии после открытия регистра) ? эээээээээээ… Добавлено через 1 минуту
И сразу еще один вопрос, как поймать изменения ( Номенклатуру ) в регистре накопления при отмене проведения документа? Например запросом
1 |
12 / 14 / 1 Регистрация: 24.12.2010 Сообщений: 74 |
|
11.03.2015, 16:00 [ТС] |
7 |
Например запросом а можно поподробнее? это как я понял Перед Записью регистра запрос должен отрабатывать?
0 |
Модератор 3724 / 2918 / 575 Регистрация: 10.03.2011 Сообщений: 11,491 Записей в блоге: 1 |
|
11.03.2015, 16:05 |
8 |
Driven, читать литературу — потом спрашивать Литература по 1С программированию
0 |
Смотрю в отладчике Получатель(узел) в Объект.обменДанными.Получатели заполнен. Гарантирует ли это, что объект будет в таблице зарегистрированных изменений для узла?
Если это на момент окончания события ПередЗаписью (с учетом всех подписок), тогда да
те в другом месте кодом порежут регистрацию и привет кот1ёнку
странно. Точно не надо выполнять ЗарегистрироватьИзменения после установки получателей? У меня из базы магазина не регистрируется док, хотя в получателях он есть. не могу понять, где это отсекается
ПередЗаписью и соответствующие подписки. А документ точно записывается, там отказ не срабатывает?
все записывается, все срабатывает. добавляет в подписке перед записью, в обработчике проведения объект с получателями
а проверяешь как регистрацию -обработкой «регистрация изменений» -запросом к таблице изменений -в файле выгрузки -в базе приемнике? Отсутствие документа в 3-4 пунктах не обязательно означает проблемы с регистрацией.
Тэги:
Комментарии доступны только авторизированным пользователям
-
Добрый день.1с УПП платформа 2 редакция 3. версия 58.2 .
Использую внутренние шаблоны в частности Обмен 1с УПП.
Т.е. УПП С УПП все настроил для обмена. Выгрузка из источник
прошла нормально. Загрузка в приемник с ошибками (обмен настроил на обмен 1 типа документа
Заказ поставщику) ошибки- на контрагентеОшибка записи объекта
ТипОбъекта = Договор контрагента
Объект = <>
ОписаниеОшибки = Ошибка при вызове метода контекста (Записать): Ошибка при выполнении обработчика — ‘ПередЗаписью’: {ОбщийМодуль.ПроцедурыОбменаУПП.Модуль(709)}: Ошибка при вызове метода контекста (Добавить): Несоответствие типов (параметр номер ‘1’)
ПозицияМодуля = Обработка.ОбменДаннымиXML.МодульОбъекта(3778)
КодСообщения = 26
Техническая информация:
{Обработка.ОбменДаннымиXML.МодульОбъекта(3785)}: Ошибка записи объектаВот такая ошибка при загрузки. А ошибка ниже стала появлятся как документ стаи обмениваться.
Это конечно ссылка. Контрагент. Подскажите как работать с ссылками если мне не обязательно вести справочник Контрагента. Или все таки надо. а как приредактировании избавится
от ошибки при редактировании . Подскажите пожалуйста. -
Offline
TerANik
Профессионал в 1С- Регистрация:
- 19 ноя 2014
- Сообщения:
- 1.281
- Симпатии:
- 98
- Баллы:
- 54
т.е. вы собираетесь переносить справочник Договора, а справочник владелец нет?
-
Вобщто это проблема серезная если менеджер не может оформить документ
и когда на запись документа и проводку влияет обмен этого документа— Объединение сообщений, 1 дек 2014 —
Да не собирался ни договор ни контрагента
-
Offline
nomad_irk
Гуру в 1С- Регистрация:
- 20 окт 2008
- Сообщения:
- 9.900
- Симпатии:
- 1.035
- Баллы:
- 204
НаличиеОбменаУПП — это один из параметров сеанса.
Необходимо проверить каким образом он устанавливается и почему возникает ошибка получения его значения. -
Но меня сейчас более всего волнует формирование нового документа и вмешательство
обмена на сохранение и проведение его. Что за хрень с этим контролем по обмену ? -
Offline
TerANik
Профессионал в 1С- Регистрация:
- 19 ноя 2014
- Сообщения:
- 1.281
- Симпатии:
- 98
- Баллы:
- 54
При записи документа происходит регистрация в узлах, в этом наверно и проблема, регистрация по причине того что что то не так с выше описанным параметром сеанса пройти не может.
-
Offline
nomad_irk
Гуру в 1С- Регистрация:
- 20 окт 2008
- Сообщения:
- 9.900
- Симпатии:
- 1.035
- Баллы:
- 204
Именно так, т.к. используется обмен по правилам, судя по входным данным.
-
Знаю что это параметр сеанса.Почему контроль параметра сеанса обмена не в теме
контролируется. Я же обменялся нормально. И теперь этот домоклов меч постоянно висеть надо мной будет .сколько их параметров- много вдруг слетит один все ищи. Как искать В Отладчике возможно
только при передачи. Здесь как его найду просматривая код. А если документ
в нескольких планах обменивается. Неужели у меня только такая проблема.
Коллеги , у кого такая же ж. как вы поступаете. -
Offline
nomad_irk
Гуру в 1С- Регистрация:
- 20 окт 2008
- Сообщения:
- 9.900
- Симпатии:
- 1.035
- Баллы:
- 204
Вероятно, что вы делаете что-то не так, при настройке обмена между узлами.
Типовой обмен вполне работоспособен.
Рассказывайте с самого начала, как настраивали обмен, что в настройках обмена включали/выключали….в общем все детали даже мелкие, пусть они вам даже не понятные…. -
Не верю. Не может регистрация в узлах проходить по вновь созданному документу .
Он еще может не удален. Почему не перед обменом. А ПРИ ФОРМИРОВАНИИ.
Документ только родился а уже в планах. -
Offline
TerANik
Профессионал в 1С- Регистрация:
- 19 ноя 2014
- Сообщения:
- 1.281
- Симпатии:
- 98
- Баллы:
- 54
Что вот это за строка, дайте кусок кода
ОбщийМодуль.ПроцедурыОбменаУПП.Модуль(709)}: Ошибка при вызове метода контекста (Добавить):
Сам нашелЕсли МассивУзловДляРегистрацииПриЗаписи <> Неопределено Тогда
// для регистрации объекта
Для Каждого Элемент Из МассивУзловДляРегистрацииПриЗаписи ЦиклИсточник.ОбменДанными.Получатели.Добавить(Элемент);
КонецЦикла;
КонецЕсли;
Вообще он ругается на то что Элемент это не узел а непонятно что, попробуйте отладчиком пройтись
— Объединение сообщений, 1 дек 2014 —
Эть как самоуверенно, а когда же она должна проходить регистрация? Как раз в момент записи документа.
-
Offline
nomad_irk
Гуру в 1С- Регистрация:
- 20 окт 2008
- Сообщения:
- 9.900
- Симпатии:
- 1.035
- Баллы:
- 204
Снова упираемся в то, что Источник.ОбменДанными.Получатели не содержит то, что должно в нем содержаться, судя по контексту кода.
-
Сервис Обмен данными в упп 8 Открывается помошник настройки с ним все делал.
там галочки не ставиш
после выбрал вариант
Управление производственным предприятием 1.3 — Тип 1.2 в списке не было и выбрал вариант только туда(одностороний) все. Установил файловый обмен и директорию.Все. более ничего не делал.
Все заработало. и ошибки по делу выдаются но при этом по тем документам которые передаю такая вот проблема -
Offline
nomad_irk
Гуру в 1С- Регистрация:
- 20 окт 2008
- Сообщения:
- 9.900
- Симпатии:
- 1.035
- Баллы:
- 204
На стороне приемника настраивали обмен? Там так же необходимо указать узел.
По этому узлу система поймет, что необходим обмен УПП-УПП, взведет нужный параметр сеанса…… -
Существует Этап обмена Загрузка Здесь документы по узлам должны распихиваться
а Источник.ОбменДанными.Получатели.Добавить(Элемент);
Работать должен правильно он уже произвел обмен.
;
— Объединение сообщений, 1 дек 2014 —
Нет на стороге передающей где прошло описание чем обмениваться при этом
помошник формируеет файл настройки для приемной стороны.
На приемной стороне он подгружается и пара для обмена готова.
Посмотрите последние уроки ГИЛЕВА по обмену Этот помошник вставлен в конфигурацию в эту версию и БСП 2.1 -
Offline
TerANik
Профессионал в 1С- Регистрация:
- 19 ноя 2014
- Сообщения:
- 1.281
- Симпатии:
- 98
- Баллы:
- 54
Стоп…
У вас сейчас проблема я так понял заключается в том что в центральной базе менеджер не может записать документ? так? -
И еще все это с документом , когда нельзя записать противоречит классическим правилам
регистрации информации для обмена. не находите ли. Документ естьдокумент когда он проведен.
По класике он регистрируется для обмена. ПОтом только на этапе загрузки все зарегистированые
для обмена документы попадают в обменник.— Объединение сообщений, 1 дек 2014 —
У вас сейчас проблема я так понял заключается в том что в центральной базе менеджер не может записать документ? так?
У нас проблема что менеджер влез в процесс формирования документа и мешает его сформировать,
провести , мешает работе живых менеджеров.
А так Вы правы. он не дает добро записи -
Offline
TerANik
Профессионал в 1С- Регистрация:
- 19 ноя 2014
- Сообщения:
- 1.281
- Симпатии:
- 98
- Баллы:
- 54
Д
Где это вы такое вычитали , что документ есть документ когда он проведен? Документ есть документ когда он существует в базе как объект, а проведен он или нет это уже другая песня.
Вопрос в том как настроены правила обмена,выгружать только проведенные или нетИ как бы вы не хотели регистрация объектов происходит перед записью, а не после проведения… у 1С по факту нет обработчика после проведения.
Процедура ПередЗаписьюДокументаДляОбменаУПППередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
Если Отказ ИЛИ НЕ ПараметрыСеанса.НаличиеОбменаУПП Тогда
Возврат;
КонецЕсли;ПередЗаписьюСсылочногоТипаДляОбменаПоОрганизации(Источник, Отказ, «Документы»);
КонецПроцедуры
Вот процедура которая отрабатывает и если не инициализирован параметр сеанса он на него ругается
Воо..
Запрос = Новый Запрос;
Запрос.Текст = «ВЫБРАТЬ
| ОбменУППУПП.Ссылка,
| ОбменУППУПП.ДатаНачалаВыгрузкиДокументов КАК ДатаНачалаВыгрузкиДокументов
|ИЗ
| ПланОбмена.ОбменУППУПП КАК ОбменУППУПП
|ГДЕ
| ОбменУППУПП.Ссылка <> &ЭтотУзелПолный»;Запрос.УстановитьПараметр(«ЭтотУзелПолный», ПланыОбмена.ОбменУППУПП.ЭтотУзел());
РезультатЗапроса = Запрос.Выполнить();
ЕстьУзлыОбменаУППУПП = НЕ РезультатЗапроса.Пустой();
ПараметрыСеанса.НаличиеОбменаУПП = ЕстьУзлыОбменаУППУПП;
куда копать надо.
Последнее редактирование: 1 дек 2014 -
Вот процедура которая отрабатывает и если не инициализирован параметр сеанса он на него ругается
Если коротко то все вышеописанное можно сформулировать так.У документов которыми обмениваются при настройке плана обмена поменяли код по событию перед
записью() . Теперь он (менеджер плана обмена…естественно анализируют наличие плана обмена , в котором учавствует документ. Если такого нет (но документ должен обмениваться ! ) то запись запрещена.поскольку это считается ошибкой,По сути это так выглядит. Или я не прав ?
-
Offline
TerANik
Профессионал в 1С- Регистрация:
- 19 ноя 2014
- Сообщения:
- 1.281
- Симпатии:
- 98
- Баллы:
- 54
Если честно из вышеописанного я ничего не понял, можно как то детализированей