Пишу перенос данных о сотрудниках из ЗУП 3.1 в УПП 1.3 в КД3.
Надо выгрузить правила синхронизации.
Открываю обработку \tmplts\1c\Conversion\3_0_5_3\Выгрузка правил синхронизации.epf
(предварительно закомментировав код в общем модуле ОбменДаннымиСервер
Необходимо в конфигураторе зайти во все планы обмена и в модуле менеджера проверить наличие процедуры ПриПолученииНастроек(). Если она отсутствует, то необходимо ее добавить:
// Заполняет настройки, влияющие на использование плана обмена.
//
// Параметры:
// Настройки - Структура - настройки плана обмена по умолчанию, см. ОбменДаннымиСервер.НастройкиПланаОбменаПоУмолчанию,
// описание возвращаемого значения функции.
//
Процедура ПриПолученииНастроек(Настройки) Экспорт
КонецПроцедуры
Добавил процедуру как описано. Все равно ошибка та же.
Метод объекта не обнаружен (ПриПолученииНастроек)
Причем добавил и в менеджер и в модуль обмена данными.
Если в БП закомментировать строку, то проходит, выбор версии происходит и на следующем этапе ошибка:
"{ВнешняяОбработка.ВыгрузкаПравилСинхронизацииЧерезУниверсальныйФормат.Форма.Форма.Форма(88)}: Значение не является значением объектного типа (Получить)
КомпонентыОбмена.МенеджерОбмена = ВерсииФормата.Получить(Объект.НомерВерсииФормата);"
при попытке отслеживания выяснилось, что тип действительно не тот, но что с ним делать хз..
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Список выбора версий формата.
ВерсииФормата = Новый Соответствие;
ОбменДаннымиПереопределяемый.ПриПолученииДоступныхВерсийФормата(ВерсииФормата);
Для Каждого ПланОбмена Из Метаданные.ПланыОбмена Цикл
Попытка // ЗДЕСЬ
Если ОбменДаннымиСервер.ЭтоПланОбменаXDTO(ПланОбмена.Имя) Тогда
ВерсииФорматаПланаОбмена = Новый Соответствие;
ПланыОбмена[ПланОбмена.Имя].ПолучитьВерсииФорматаОбмена(ВерсииФорматаПланаОбмена);
Для Каждого ВерсияПланаОбмена Из ВерсииФорматаПланаОбмена Цикл
МодульМенеджера = ВерсииФормата.Получить(ВерсияПланаОбмена.Ключ);
Если МодульМенеджера = Неопределено
Или МодульМенеджера <> ВерсияПланаОбмена.Значение Тогда
ВерсииФормата.Вставить(ВерсияПланаОбмена.Ключ, ВерсияПланаОбмена.Значение);
КонецЕсли;
КонецЦикла;
КонецЕсли;
Исключение
Продолжить;
КонецПопытки;
КонецЦикла;
Для Каждого ВерсияФормата ИЗ ВерсииФормата Цикл
Элементы.НомерВерсииФормата.СписокВыбора.Добавить(ВерсияФормата.Ключ);
КонецЦикла;
АдресХранилищаВерсииФормата = ПоместитьВоВременноеХранилище(ВерсииФормата, ЭтаФорма.УникальныйИдентификатор); /// ЗДЕСЬ
КонецПроцедуры
(6) открыл конфигуратор и действительно не у всех планов обмена есть версия формата.
Поэтому без попытки не обойтись!
После выбора версии следующая ошибка:
{ВнешняяОбработка.ВыгрузкаПравилСинхронизацииЧерезУниверсальныйФормат.Форма.Форма.Форма(94)}: Значение не является значением объектного типа (Получить)
КомпонентыОбмена.МенеджерОбмена = ВерсииФормата.Получить(Объект.НомерВерсииФормата);
и равно неопределенно...
По итогу данной настройки не достаточно.
Нужно взять код из публикации
https://infostart.ru/public/695523/ Там переписаны все условия около 10 строк. Поэтому проще скопировать и заменить, чтобы не тратить время. Тогда отработает как нужно.
7.
user641139_tds2000
22.01.19 06:19 Сейчас в теме
Спасибо! :)
И почему фирма 1С не хочет доработать свою КД 3.0? лежит себе на сайте у них в таком виде, что нужно подправлять напильником при использовании с их же типовыми конфигурациями.