Проблемы про переносе документов, которые не могу решить
Добрый день В своем первом переносе данных столкнулся вот с какими проблемами: Переношу справочники и все документы из Бухгалтерия для Украины В УТП для Украины. Справочники вроде перенес, остались некоторые документы.
По мере решения проблем, буду просить помочь решить следующие. Буду благодарен за помощь.
Вот первая проблема:
В источнике есть справочник Подразделения, в приемнике два справочника: Подразделения и ПодразделенияОрганизации. Приемник перенес в два приемника, вроде нормально. Теперь во многих документах появился новый реквизит: Подразделение ( тип. Подразделение). Как его заполнить в обработчиках? Например, значением елемента Администрация (он не предопределенный!). Пробовал в обработчике ПередВыгрузкой: Значение = Справочники.Подразделение.НайтиПоКоду("0002") Но так выдает ошибку((
По мере решения проблем, буду просить помочь решить следующие. Буду благодарен за помощь.
Вот первая проблема:
В источнике есть справочник Подразделения, в приемнике два справочника: Подразделения и ПодразделенияОрганизации. Приемник перенес в два приемника, вроде нормально. Теперь во многих документах появился новый реквизит: Подразделение ( тип. Подразделение). Как его заполнить в обработчиках? Например, значением елемента Администрация (он не предопределенный!). Пробовал в обработчике ПередВыгрузкой: Значение = Справочники.Подразделение.НайтиПоКоду("0002") Но так выдает ошибку((
По теме из базы знаний
- Перенос данных из УПП 1.3 / КА 1.1 в БП 3. Переносятся документы, справочники и начальные остатки
- Перенос данных и обмен из УТ 10.3 в УТ 11 / КА 2 / ERP 2. Переносятся документы, справочники и остатки
- Перенос данных из УПП 1.3 в ERP 2 / УТ 11 / КА 2. Переносятся документы, справочная информация и остатки
- Перенос данных из БП 2.0 в УТ 11 / КА 2 / ERP 2. Переносятся документы, остатки и справочники
- Переход и перенос данных из БП 2.0 в БП 3.0. Переносятся документы, остатки и справочники
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Источник у вас один: справочник Подразделения
Приемник: Подразделения и ПодразделенияОрганизаций
В документах Тип: Подразделение?
Конвертация реквизита в документе: Источник-пусто, а приемник - Подразделение?
Пробовали писатьв приемнике так: Значение = Источник?
Приемник: Подразделения и ПодразделенияОрганизаций
В документах Тип: Подразделение?
Конвертация реквизита в документе: Источник-пусто, а приемник - Подразделение?
Пробовали писатьв приемнике так: Значение = Источник?
(2) Bukaska, Не очень понял как єто должно сработать? Конвертация реквизита в документе: Источник-пусто, а приемник - Подразделение( тип Подразделения). Так и есть. В приемнике в справочнике Подразделения уже есть элемент Администрация. Необходимо чтобы он попал в реквизит документа.
Значение = Источник не работает! (может я не в том обработчике делаю)
Значение = Источник не работает! (может я не в том обработчике делаю)
(3) mukilka,
Если
Тогда
Ой.. Я сказала глупость.
Поняла что ничего не поняла.
Справочник источника переносили в приемник конвертацией типа: Один в несколько?
если значение нужно в документе заполнить из приемника, то почему используете обработчик: ПередВыгрузкой?
Мне кажется, тут правильнее использовать обработчик: ПослеЗагрузки();
Подразделений много надо заполнять? Или только заполнить значением: Администрация.. Если везде нужно проставить одно значение, тогда проще. если несколько значений.. то тут надо ещё подумать.. скорее всего писать дополнительную веточку Если..с поиском по строке
Если
Источник-пусто, а приемник - Подразделение( тип Подразделения).
Тогда
Пробовали писатьв приемнике так: Значение = Источник? .
Ой.. Я сказала глупость.
Приемник перенес в два приемника
Пробовал в обработчике ПередВыгрузкой: Значение = Справочники.Подразделение.НайтиПоКоду("0002")
Пробовал в обработчике ПередВыгрузкой: Значение = Справочники.Подразделение.НайтиПоКоду("0002")
Поняла что ничего не поняла.
Справочник источника переносили в приемник конвертацией типа: Один в несколько?
если значение нужно в документе заполнить из приемника, то почему используете обработчик: ПередВыгрузкой?
Мне кажется, тут правильнее использовать обработчик: ПослеЗагрузки();
Подразделений много надо заполнять? Или только заполнить значением: Администрация.. Если везде нужно проставить одно значение, тогда проще. если несколько значений.. то тут надо ещё подумать.. скорее всего писать дополнительную веточку Если..с поиском по строке
Справочник источника переносили в приемник конвертацией типа: Один в несколько? Перенес
если значение нужно в документе заполнить из приемника, то почему используете обработчик: ПередВыгрузкой? Заполнять из приемника, можно и в этом обработчике.
Мне кажется, тут правильнее использовать обработчик: ПослеЗагрузки(); В обработчике ПередВыгрузкой для ВСЕГО ДОКУМЕНТА я провожу документ, в документе уже должен бить заполнено Подразделение. Наверное нужно в "ПередВыгрузкой".
Подразделений много надо заполнять? Или только заполнить значением: Администрация. Нужно заполнить одним "Администрация".
Я просто не знаю как правильно прописать? НайтиПоКоду или как?
если значение нужно в документе заполнить из приемника, то почему используете обработчик: ПередВыгрузкой? Заполнять из приемника, можно и в этом обработчике.
Мне кажется, тут правильнее использовать обработчик: ПослеЗагрузки(); В обработчике ПередВыгрузкой для ВСЕГО ДОКУМЕНТА я провожу документ, в документе уже должен бить заполнено Подразделение. Наверное нужно в "ПередВыгрузкой".
Подразделений много надо заполнять? Или только заполнить значением: Администрация. Нужно заполнить одним "Администрация".
Я просто не знаю как правильно прописать? НайтиПоКоду или как?
Попробуйте тогда так: Значение = "Администрация"; Тут два варианта обработчика.. Есть Значение() и есть Выражение()
И почему вы ПередВыгрузкой проводите документ, не проще ли документ проводить, когда данные уже загружены?
У вас документы в источнике не проведены разве, что вы их в обработчике проводите?
И почему вы ПередВыгрузкой проводите документ, не проще ли документ проводить, когда данные уже загружены?
У вас документы в источнике не проведены разве, что вы их в обработчике проводите?
(6) Bukaska, В источнике документы проведенные, но в приемнике больше регистров где документ может участвовать и цель стоит перенести максимум информации, документы в приемнике я должен провести. Вручную их слишком много. Значить проводить уже в ПослеЗагрузки? НО тогда там нет параметров РежимЗаписи И РежимПроведения, которые использую при проведении.
Если Значение = "Администрация" тогда нужно ведь будет еще и код, родитель и всё остальное заполнить? вроде да?
Если Значение = "Администрация" тогда нужно ведь будет еще и код, родитель и всё остальное заполнить? вроде да?
Вы сами говорите, что в источнике документы проведенные, а в приемнике вы их хотите провести.
Факт то, что обработчик ПередВыгрузкой работает вроде как на стороне источника, поэтому я малясь и не врубилась, а зачем второй раз это делать.
Значение = "Администрация" - это лучше написать в ПКС
Проведение документа делайте в обработчике ПослеЗагрузки.
Хотя.. в приемнике разве нет групповой обработки проведения документов? было бы наверное проще.
Факт то, что обработчик ПередВыгрузкой работает вроде как на стороне источника, поэтому я малясь и не врубилась, а зачем второй раз это делать.
Значение = "Администрация" - это лучше написать в ПКС
Проведение документа делайте в обработчике ПослеЗагрузки.
СтрокаДокумент = Параметры.ДокументыДляПроведения.Добавить();
//Отбираете нужные вам документы...
...
СтрокаДокумент.РежимЗаписи = ?(ПараметрыОбъекта.Получить("Проведен"),
РежимЗаписиДокумента.Проведение, РежимЗаписиДокумента.ОтменаПроведения);
Хотя.. в приемнике разве нет групповой обработки проведения документов? было бы наверное проще.
(8) Bukaska, про проведение документы Вы правы. А вот для реквизита не работает. Конечно, что я делаю в ПКС: Источник - пустой, приемник - реквизит Подразделение. если пишу в ПКС ПерезВыгрузкой: Значение = "Администрация" то ругается что значение не является значение объектного типу (Код).
Задаче вроде простая. Возможно просто я плохо объясняю :(((
Задаче вроде простая. Возможно просто я плохо объясняю :(((
(10) Bukaska, Вы правы!!! Для ПКС было выбрано ПКО. Убрал его - не выдает ошибки. Но если только пишу в обработчике ПКС ПередВыгрузкой Значение = "Администрация" то реквизит в документе не заполняется. (Пробовал уже и в ПослеВыгрузки Значение = Справочники.Подразделения.НайтиПоКоду(.....).
Не заполняет( наверное скорее для меня будет написать обробку и заполнить путые подразделение администрацией чем разобраться в правилах конвертации:(
Не заполняет( наверное скорее для меня будет написать обробку и заполнить путые подразделение администрацией чем разобраться в правилах конвертации:(
(12) Bukaska, Если в ПКС пишу Выражение = "Администрация" то при загрузке в источник ошибка компеляции: переменная Администрация не определена.
Если Выражение =Справ.Подр.НайтиПоКоду не заполняет((( Ну вы же наверно знаете, как при конвертации значение реквизита в приемнике заполнить значением из приемника.
Если Выражение =Справ.Подр.НайтиПоКоду не заполняет((( Ну вы же наверно знаете, как при конвертации значение реквизита в приемнике заполнить значением из приемника.
(13) mukilka, При загрузке в Источник?
Короче я запуталась..
Вы говорите, что когда вы отключили правило, у вас пропала ошибка.
Если у вас ПКС подразделение с пустым источником.. возможно что не конвертируется, так как нет соответствующего ПКО.
По организациям у вас только одно ПКО, которым конвертировали один в несколько?
Может сделать ПКО с пустым источником(новое ПКО) и данным приемником.. чтобы специально для этого документа?
И там уже назначить и значение.. и ключ выгружаемых данных..
Только в ПКС оставить поиск по наименованию.. чтобы не было включено поиск по коду и прочее.. иначе опять будет ругань)))
Далее.. мне бы лучше было попрактиковаться с базами.. тяжеловато как -то телепатом работать.. не видя правил)
Короче я запуталась..
Вы говорите, что когда вы отключили правило, у вас пропала ошибка.
Если у вас ПКС подразделение с пустым источником.. возможно что не конвертируется, так как нет соответствующего ПКО.
По организациям у вас только одно ПКО, которым конвертировали один в несколько?
Может сделать ПКО с пустым источником(новое ПКО) и данным приемником.. чтобы специально для этого документа?
И там уже назначить и значение.. и ключ выгружаемых данных..
Только в ПКС оставить поиск по наименованию.. чтобы не было включено поиск по коду и прочее.. иначе опять будет ругань)))
Далее.. мне бы лучше было попрактиковаться с базами.. тяжеловато как -то телепатом работать.. не видя правил)
(14) Bukaska, Большое спасибо за помощь! :) Это моя первая конвертация, поэтому и так трудно объясняю)) Я попробую и отпишусь по результатам. Просто еще не совсем разобрался что можно передавать и в каких данных (Источник,Приемник, Значение, выражение, выгружаемые данные и тд....))
(16) Bukaska, (18) vlasin, Чтобы не далел, постоянно ошибка:
Объект = Авансовий отчет 00000000001 від 05.02.2014 12:00:00 (Авансовий отчет)
СвойствоПриемника = Организация (СправочникСсылка.Организации)
ОписаниеОшибки = Получения элемента за индексом для значения не определенно !!!!!!!!!!!
ПозицияМодуля = Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(8220)
КодСообщения = 68
ну никак не могу найти как для подразделения просто установить значение "Администрация" и всё!
Объект = Авансовий отчет 00000000001 від 05.02.2014 12:00:00 (Авансовий отчет)
СвойствоПриемника = Организация (СправочникСсылка.Организации)
ОписаниеОшибки = Получения элемента за индексом для значения не определенно !!!!!!!!!!!
ПозицияМодуля = Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(8220)
КодСообщения = 68
ну никак не могу найти как для подразделения просто установить значение "Администрация" и всё!
(23) да, в этом правиле ошибка.
Вы определяете Значение в ПКС (1-1), присваиваете ему строковой тип с названием организации. Затем эта строка идет в правило конвертации объекта (1-2). А там источник не строка, там ожидается ссылочный тип, у которого есть реквизит Название и по этому реквизиту будет осуществляться поиск. Т.к. у строки никакого реквизита нет, ничего не работает.
Если ПКО Организации сейчас используется для переноса организаций, то можно передать ему на обработку структуру (в 1-1) (имитировать ссылочный объект).
ПКО Организации примет эту структуру в качестве источника, обратится к свойству Наименование и подствит его в поиск в приемнике.
Если ПКО Организации нужен только для синхронизации данных (новые организации переноситься не планируется), то лучше пометить на удаление весь этот ворох бесполезных свойств, очистить Источник от ссылочного типа и оставить только те ПКС, по которым осуществляется поиск (только Наименование). Тогда 1-1 оставить без изменений. В ПКО Организации зайти в ПКС Наименование и прописать . В этом случае в качестве источника будет строка, ее значение присвоится свойству Наименование, и по нему будет осуществлен поиск.
Вы определяете Значение в ПКС (1-1), присваиваете ему строковой тип с названием организации. Затем эта строка идет в правило конвертации объекта (1-2). А там источник не строка, там ожидается ссылочный тип, у которого есть реквизит Название и по этому реквизиту будет осуществляться поиск. Т.к. у строки никакого реквизита нет, ничего не работает.
Если ПКО Организации сейчас используется для переноса организаций, то можно передать ему на обработку структуру (в 1-1) (имитировать ссылочный объект).
Значение = Новый Структура ("Наименование", "Bicko КГ");
ПКО Организации примет эту структуру в качестве источника, обратится к свойству Наименование и подствит его в поиск в приемнике.
Если ПКО Организации нужен только для синхронизации данных (новые организации переноситься не планируется), то лучше пометить на удаление весь этот ворох бесполезных свойств, очистить Источник от ссылочного типа и оставить только те ПКС, по которым осуществляется поиск (только Наименование). Тогда 1-1 оставить без изменений. В ПКО Организации зайти в ПКС Наименование и прописать
Значение = Источник;
(24) vlasin, (Нужно переносить организации) Большое спасибо за ответ!!! Сейчас попробую!
И еще один вопрос об "подразделение": А как прописать значение для подразделение. как писал раньше, Подразделение в документе должно быть Администрация, есть в приемнике? Аналогично тому, как Вы написали?
И еще один вопрос об "подразделение": А как прописать значение для подразделение. как писал раньше, Подразделение в документе должно быть Администрация, есть в приемнике? Аналогично тому, как Вы написали?
(26) vlasin,Может не так сделал, но и дальше на организацию ругается. Когда прописал: Значение = Новый Структура ("Наименование", "Bicko КГ"); У меня ПКС Организация поис идеет только по полю "Наименование" при выгрузке:
Ошибка получения значения свойства объекта (по имени свойства источника)
ПКО = Организации (Справочник: Организации)
ПКС = 1 (Код --> Код)
Объект = Структура (Структура)
СвойствоПриемника = Код (Строка)
ОписаниеОшибки = Поле об`єкту не виявлено (Код)
ПозицияМодуля = Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(8220)
КодСообщения = 13
Ошибка получения значения свойства объекта (по имени свойства источника)
ПКО = Организации (Справочник: Организации)
ПКС = 1 (Код --> Код)
Объект = Структура (Структура)
СвойствоПриемника = Код (Строка)
ОписаниеОшибки = Поле об`єкту не виявлено (Код)
ПозицияМодуля = Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(8220)
КодСообщения = 13
(27), да, ПКО пытается получить все свойства. Одного Наименования все же не достаточно. Очистите правило конвертации для этого свойства и вместо Значение = "имя организации" напишите ИмяПредопределенногоЭлемента = "<код организации в базе приемнике>";
(29) vlasin, ПОЛУЧИЛОСЬ!!! УРА! так долго страдал!) Еще раз большое спасибо! Теперь хочу спросить еще об одной проблеме. если мне нужно заполнить реквизит предопределеным значением. Тогда писать Значение = "Статья такая то" или использовать тот же метод что выше? И можел ли быть, что в синхронизации свойств не видит один из реквизитов приемника? сейчас сделаю скриншоты
(29) vlasin, Документ: РеализацияТоваровУслуг. В конфигураторе в приемнике есть реквизит ВидПередачи (ПеречислениеСсылка.ВидыПередачиТоваров) но в конвертации такого свойства документа не могу найти. Синхронизация пустая( все свойства синхронизированны) Этот реквизит объязательный для заполнения в документе. В чем может быть проблема?
(31), автоматом сопоставляются только совпадающие свойства в Приемнике и Источнике. Скорее всего, в Источнике такого свойство отсутствует, поэтому его не с чем было сопоставить у Приемника. Если в Источнике есть подходящее по смыслу свойство (Перечисление с другим названием), можете добавить ПКС вручную или через мастер (кнопка Синхронизация свойств), или через Добавить. Мастер удобен тем, что можно увидеть все несопоставленные свойства - на форму их могли не вывести, а на проведение их незаполненность влияет.
Если в Источнике нет ничего подходящего, то да, через Имя предопределенного можно назначить нужное значение перечисления. Имя перечисления подставлять так, как оно задано в конфигураторе.
Если в Источнике нет ничего подходящего, то да, через Имя предопределенного можно назначить нужное значение перечисления. Имя перечисления подставлять так, как оно задано в конфигураторе.
(38) vlasin, (36) Bukaska, как при переносе элементов справочников сразу из записывать. А именно, когда переношу справочник Номенклатура то элементы переносит. Но правильно 1С начинает работать только когда открою данную номенклатуру и нажму -"Записать" . Пробовал в обработчике ПередЗагрузкой: РежимЗаписи = "Запись"; но не работает.
(42), значит справочник уже подправили - перенесли что-то в другую группу, название исправили. Оставляйте флаги поиска у Кода и ЭтоГруппа, с остальных свойств снимайте. В ПКС Наименование установите флаг Не замещать значение свойства у существующих объектов.
Или групповой обработкой перезапишите все элементы справочника Номенклатура.
Или групповой обработкой перезапишите все элементы справочника Номенклатура.
(43) mukilka,
Нет.. это вы обрубите на 9 символов справа.. а точнее
Описание:
Выбирает последние справа символы строки.
А вам надо:
СокрП
Описание:
Отсекает незначащие символы, стоящие справа от последнего значащего символа в строке.
То есть вам нужно как-то так
Попробуйте так.
Источник = Прав(Источник,9)? Или как то иначе?
Нет.. это вы обрубите на 9 символов справа.. а точнее
Описание:
Выбирает последние справа символы строки.
КодРегиона = Прав(ОсновноеСредство.ГосНомер, 2);
А вам надо:
СокрП
Описание:
Отсекает незначащие символы, стоящие справа от последнего значащего символа в строке.
То есть вам нужно как-то так
Источник = СокрП(Источник,3)
Попробуйте так.
(19), да, все верно - в ПКС добавить ИмяПредопределенногоЭлемента = "00001"; и все. ПКО назначать не надо.
В обработке Универсальный обмен данными в формате XML Есть такой код:
Т.е. сначала попытка получить предопределенный элемент, в случае неудачи - поиск по коду.
В обработке Универсальный обмен данными в формате XML Есть такой код:
ИначеЕсли Свойство = "{ИмяПредопределенногоЭлемента}" Тогда
Попытка
Ссылка = Менеджер[Значение];
Исключение
Ссылка = Менеджер.НайтиПоКоду(Значение);
КонецПопытки;
Возврат Ссылка;
Иначе
ПоказатьТ.е. сначала попытка получить предопределенный элемент, в случае неудачи - поиск по коду.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот