Комментарии
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(4) Инструмент переносит данные между конфигурациями с идентичной или почти идентичной структурой данных.
Если в конфигураторе объекты называются одинаково и поля этих объектов называются одинаково и имеют одинаковый тип, то они перенесутся, в противном случае - не перенесутся или будет ошибка.
Касательно конфигурации Промышленная безопасность - сказать ничего не могу, т.к. с такой не работал
Если в конфигураторе объекты называются одинаково и поля этих объектов называются одинаково и имеют одинаковый тип, то они перенесутся, в противном случае - не перенесутся или будет ошибка.
Касательно конфигурации Промышленная безопасность - сказать ничего не могу, т.к. с такой не работал
Ваша обработка не работает, зря потратил старпмани.
{ВнешняяОбработка.ПереносДанных.МодульОбъекта(218)}: Ошибка при вызове метода контекста (Выполнить)
РезультатЗапроса = Запрос.Выполнить();
по причине:
{(10, 20)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
И р.Представление <<?>>= т.Представление
{ВнешняяОбработка.ПереносДанных.МодульОбъекта(218)}: Ошибка при вызове метода контекста (Выполнить)
РезультатЗапроса = Запрос.Выполнить();
по причине:
{(10, 20)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
И р.Представление <<?>>= т.Представление
ERP 2.4.6.188 (демонстрационная база)
При попытке переноса справочника Номеклатура (нажимаем кнопку Выгрузить):
Выдает окно с сообщением: Получение элемента по индексу для значения не определено
В сообщения выводит:
{ВнешняяОбработка.ПереносДанных.МодульОбъекта(579)}: Значение не является значением объектного типа (Метаданные):[]
При попытке переноса справочника Номеклатура (нажимаем кнопку Выгрузить):
Выдает окно с сообщением: Получение элемента по индексу для значения не определено
В сообщения выводит:
{ВнешняяОбработка.ПереносДанных.МодульОбъекта(579)}: Значение не является значением объектного типа (Метаданные):[]
ERP 2.4.6.188 (демонстрационная база).
На обновленной обработке заработало.
Но при переносе данных не сохранило структуру (см. приложенный файл).
Левая часть - структура в демонстрационной базе.
Правая часть - структура в базе в которую переносили номенклатуру.
Папки второго уровня переехали на первый уровень.
На обновленной обработке заработало.
Но при переносе данных не сохранило структуру (см. приложенный файл).
Левая часть - структура в демонстрационной базе.
Правая часть - структура в базе в которую переносили номенклатуру.
Папки второго уровня переехали на первый уровень.
Прикрепленные файлы:
(11)
Мне не удалось повторить ошибку. Структура папок переносится корректно.
Могу предположить, что группы второго уровня ЯВНО не добавлялись в выгрузку. То есть выгружались элементы, которые находятся в этих группах. При этом когда при загрузке создавались элементы, создались и их родители. Но т.к. родители явно в выгрузке не были указаны, то они создались в корне.
В таком случае если выгрузить-загрузить только группы, то иерархия встанет на место
Если мое предположение не верно, то уточните, пожалуйста:
-версию платформы
-название справочника
-как выгружали загружали: выгрузили полностью справочник и загрузили в пустой справочник в другой базе или как-то иначе?
Мне не удалось повторить ошибку. Структура папок переносится корректно.
Могу предположить, что группы второго уровня ЯВНО не добавлялись в выгрузку. То есть выгружались элементы, которые находятся в этих группах. При этом когда при загрузке создавались элементы, создались и их родители. Но т.к. родители явно в выгрузке не были указаны, то они создались в корне.
В таком случае если выгрузить-загрузить только группы, то иерархия встанет на место
Если мое предположение не верно, то уточните, пожалуйста:
-версию платформы
-название справочника
-как выгружали загружали: выгрузили полностью справочник и загрузили в пустой справочник в другой базе или как-то иначе?
Бух 3.0 (платформа 8.3.12, Релиз 3.0.67)
Ошибка:
ТИП: РегистрБухгалтерии.Хозрасчетный.Ошибка при создании данных из макета в строках с 8 по 12 : {ВнешняяОбработка.ПереносДанных.МодульОбъекта(1190)}: Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(1,1)}: Процедура или функция с указанным именем не определена (ЗаполнитьИзТаблицыЗначений_РегистрБухгалтерии)
Ошибка:
ТИП: РегистрБухгалтерии.Хозрасчетный.Ошибка при создании данных из макета в строках с 8 по 12 : {ВнешняяОбработка.ПереносДанных.МодульОбъекта(1190)}: Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(1,1)}: Процедура или функция с указанным именем не определена (ЗаполнитьИзТаблицыЗначений_РегистрБухгалтерии)
(20) Обработка запускается только в режиме управляемого приложения.
УФ в названии - управляемые формы.
Скорее всего запускаете УПП в режиме обычного приложения и пытаетесь открыть ее как внешнюю.
Есть два способа воспользоваться обработкой в конфигурации УПП:
1. Зайти в базу УПП в режиме управляемого приложения и открыть ее как внешнюю обработку
2. Встроить обработку в конфигурацию и не забыть включить флаг использования управляемых форм в режиме обычного приложения. После этого открыть обработку как внутреннюю
УФ в названии - управляемые формы.
Скорее всего запускаете УПП в режиме обычного приложения и пытаетесь открыть ее как внешнюю.
Есть два способа воспользоваться обработкой в конфигурации УПП:
1. Зайти в базу УПП в режиме управляемого приложения и открыть ее как внешнюю обработку
2. Встроить обработку в конфигурацию и не забыть включить флаг использования управляемых форм в режиме обычного приложения. После этого открыть обработку как внутреннюю
(23) Прошу прощения, попробовал перенести справочник "Номенклатура" в одной базы в другую (однотипную). Получилось как-то криво, все папки (пустые) и элементы оказались в одном уровне. При выгрузке ставил в настройках глубину выгрузки = 4, при загрузке ничего не ставил. Наряду со справочником "Номенклатура" программа выгрузила ряд других справочников ("Контрагенты", "Виды номенклатуры", "Номенклатурные группы" и др.), ссылки на элементы которых, видимо были в справочнике "Номенклатура". По окончании загрузки программа выдала следующие сообщения:
ТИП: Справочник.ЕдиницыИзмерения.Ошибка при создании данных из макета в строках, начиная с 42 : {ВнешняяОбработка.ПереносДанных.МодульОбъекта(1154)}: Ошибка при вызове метода контекста (Вставить): Задано неправильное имя атрибута структуры
ТИП: Справочник.Номенклатура.Ошибка при создании данных из макета в строках, начиная с 43 621 : {ВнешняяОбработка.ПереносДанных.МодульОбъекта(1154)}: Ошибка при вызове метода контекста (Вставить): Задано неправильное имя атрибута структуры
ТИП: Справочник.ГруппыОбъектовРабот.Ошибка при создании данных из макета в строках, начиная с 89 427 : {(1)}: Поле объекта не обнаружено (ГруппыОбъектовРабот)
ТИП: Справочник.НоменклатурныеГруппы.Ошибка при создании данных из макета в строках, начиная с 89 449 : {(1)}: Поле объекта не обнаружено (ГруппыОбъектовРабот)
Что я не так сделал?
ТИП: Справочник.ЕдиницыИзмерения.Ошибка при создании данных из макета в строках, начиная с 42 : {ВнешняяОбработка.ПереносДанных.МодульОбъекта(1154)}: Ошибка при вызове метода контекста (Вставить): Задано неправильное имя атрибута структуры
ТИП: Справочник.Номенклатура.Ошибка при создании данных из макета в строках, начиная с 43 621 : {ВнешняяОбработка.ПереносДанных.МодульОбъекта(1154)}: Ошибка при вызове метода контекста (Вставить): Задано неправильное имя атрибута структуры
ТИП: Справочник.ГруппыОбъектовРабот.Ошибка при создании данных из макета в строках, начиная с 89 427 : {(1)}: Поле объекта не обнаружено (ГруппыОбъектовРабот)
ТИП: Справочник.НоменклатурныеГруппы.Ошибка при создании данных из макета в строках, начиная с 89 449 : {(1)}: Поле объекта не обнаружено (ГруппыОбъектовРабот)
Что я не так сделал?
(25) попробуйте сделать следующее:
Перенесите группы номенаклатуры отдельно.
1. Установите отбор ЭтоГруппа = Истина,
2. уровень выгрузки = 0, затем
3. нажать кнопку Выбрать все
4. выгрузить
5. загрузить в другую базу
Потом уже грузите нужные элементы номенклатуры с уровнем = 1
Также внимательно прочитайте в публикации пункт Требования
Если перед записью или при записи кодом установлены запреты, проверяющие бизнес-логику, то запись может не получиться.
Перенесите группы номенаклатуры отдельно.
1. Установите отбор ЭтоГруппа = Истина,
2. уровень выгрузки = 0, затем
3. нажать кнопку Выбрать все
4. выгрузить
5. загрузить в другую базу
Потом уже грузите нужные элементы номенклатуры с уровнем = 1
Также внимательно прочитайте в публикации пункт Требования
Данные загружаются в режиме ОбменДанными.Загрузка = Истина. Это значит, что в процедурах ПередЗаписью, ПриЗаписи должны стоять отсечки, как в типовых конфигурациях, иначе некоторые объекты может не получиться записать.
Если перед записью или при записи кодом установлены запреты, проверяющие бизнес-логику, то запись может не получиться.
(25)
объясню, что значит уровень = 4.
Вот ты выгружаешь элемент номенклатуры - сам элемент со всеми реквизитами это уровень 0
Все ссылки, которые в нем упоминаются - это уровень 1.
Все ссылки, которые упоминаются в уровне 1 - это уровень 2
и т.д.
Вот выгружаешь ты элемент номенклатуры, который лежит в папке, которая вложена в другую папку, которая вложена в другую папку и т.д.
При уровне = 4 у тебя выгружается сам выгружаемый элемент номенклатуры, а также четыре уровня папок в которые он вложен.
Если уровень вложенности у переносимого элемента больше 4, четвертый родитель вверх от элемента будет помещен в корень.
В перегружаемом вами справочнике номенклатуры, похоже, что больше 4 уровней, поэтому часть папок оказалась в корне, потому что не переносился их родитель.
Чтобы этого избежать я написал в предыдущем сообщении что нужно сделать. А именно необходимо перенести отдельно всю иерархию папок.
А потом уже переносить элементы с настройкой уровень = 0 или 1 в зависимости от того хотим ли мы создавать ссылки, которые вложены в переносимый элемент или нет
объясню, что значит уровень = 4.
Вот ты выгружаешь элемент номенклатуры - сам элемент со всеми реквизитами это уровень 0
Все ссылки, которые в нем упоминаются - это уровень 1.
Все ссылки, которые упоминаются в уровне 1 - это уровень 2
и т.д.
Вот выгружаешь ты элемент номенклатуры, который лежит в папке, которая вложена в другую папку, которая вложена в другую папку и т.д.
При уровне = 4 у тебя выгружается сам выгружаемый элемент номенклатуры, а также четыре уровня папок в которые он вложен.
Если уровень вложенности у переносимого элемента больше 4, четвертый родитель вверх от элемента будет помещен в корень.
В перегружаемом вами справочнике номенклатуры, похоже, что больше 4 уровней, поэтому часть папок оказалась в корне, потому что не переносился их родитель.
Чтобы этого избежать я написал в предыдущем сообщении что нужно сделать. А именно необходимо перенести отдельно всю иерархию папок.
А потом уже переносить элементы с настройкой уровень = 0 или 1 в зависимости от того хотим ли мы создавать ссылки, которые вложены в переносимый элемент или нет
В перегружаемом вами справочнике номенклатуры, похоже, что больше 4 уровней, поэтому часть папок оказалась в корне, потому что не переносился их родитель.
Дело в том, что не часть папок оказалось в корне, а все папки и элементы оказались в корне. Но в общем понял, попробую в два этапа переносить. Не понял только про "отсечки", что это. Что касается указанных мною сообщений об ошибках, то понял, что дело в измененной конфигурации базы-источника (добавлены реквизиты), сделал аналогичные изменения в базе-приемника, посмотрим. Спасибо за то, что помогаете разобраться.
(28) прикладываю пример на скриншоте, как выглядит код типовых конфигурациях.
Вот в примере, если запись происходит в особом режиме, то запись выполняем без проверок (Возврат - означает что ничего не проверяем и не дозаполняем, а просто выходим из процедуры и записываем, а в обычном режиме на примере выполняются проверки и где-то при проверках может установиться Отказ=Истина или выскочить исключение)
Так вот во всех процедурах ПриЗаписи и ПередЗаписью должны стоять отсечки как в приведенном примере. То есть в самом начале каждой процедуры-обработчика должен быть такой код:
Вот в примере, если запись происходит в особом режиме, то запись выполняем без проверок (Возврат - означает что ничего не проверяем и не дозаполняем, а просто выходим из процедуры и записываем, а в обычном режиме на примере выполняются проверки и где-то при проверках может установиться Отказ=Истина или выскочить исключение)
Так вот во всех процедурах ПриЗаписи и ПередЗаписью должны стоять отсечки как в приведенном примере. То есть в самом начале каждой процедуры-обработчика должен быть такой код:
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
Прикрепленные файлы:
Да, спасибо. Еще одно уточнение. Как я понял "уровень" касается вложенных реквизитов, а не родителей? Т.е., если я буду переносить элементы с "уровень = 0", они попадут в ранее перенесенные папки? А что значит "уровень = 1"? Что будут создаваться элементы тех справочников, на которые ссылаются элементы номенклатуры?
(30)
Родитель - это тоже реквизит справочника номенклатуры. Если переносим с уровень=0 и родителя нет в базе, то загружаемый элемент попадет в корень. Если родитель на момент загрузки есть в базе, то загружаемый элемент будет подчиненным этому родителю.
Уровень = 1 - значит, что все ссылочные объекты, которые есть в реквизитах переносимого элемента, тоже создадутся и заполнятся как в базе источнике.
Уровень = 0 - значит, что все ссылочные объекты, которые есть в реквизитах - не будут создаваться, а если объект, на который ссылается реквизит в базе отсутствует, то в реквизите будет битая ссылка.
Родитель - это тоже реквизит справочника номенклатуры. Если переносим с уровень=0 и родителя нет в базе, то загружаемый элемент попадет в корень. Если родитель на момент загрузки есть в базе, то загружаемый элемент будет подчиненным этому родителю.
Уровень = 1 - значит, что все ссылочные объекты, которые есть в реквизитах переносимого элемента, тоже создадутся и заполнятся как в базе источнике.
Уровень = 0 - значит, что все ссылочные объекты, которые есть в реквизитах - не будут создаваться, а если объект, на который ссылается реквизит в базе отсутствует, то в реквизите будет битая ссылка.
(31) Сделал, как вы сказали - в 2 этапа. Сначала поставил Отбор: ЭтоГруппа = Истина. Перенеслись все папки. Потом поставил ЭтоГруппа = Ложь. Перенеслись все элементы, но не в папки, а в корень. Кроме того в поле "Код" элементов записывается не код, а часть наименования.
Большое спасибо за обработку!
Использовал для заполнения
в справочнике Номенклатура поля Б_Идентификатор.
Пришлось действовать так:
Выгрузил справочник номенклатуры в .mxl
Прочитал этот файл из-под 1С, тут же выгрузил в .xls
Загрузил в Access, заполнил поле данными с сайта,
выгрузил в .xls снова преобразовал в .mxl
и далее Вашей обработкой загрузил в 1 С.
Таким образом заполнил 5800 наименований.
Это я описал, чтобы подойти к просьбе: сделать выгрузку и загрузку в .xls.
Обработка будет более востребована.
Использовал для заполнения
в справочнике Номенклатура поля Б_Идентификатор.
Пришлось действовать так:
Выгрузил справочник номенклатуры в .mxl
Прочитал этот файл из-под 1С, тут же выгрузил в .xls
Загрузил в Access, заполнил поле данными с сайта,
выгрузил в .xls снова преобразовал в .mxl
и далее Вашей обработкой загрузил в 1 С.
Таким образом заполнил 5800 наименований.
Это я описал, чтобы подойти к просьбе: сделать выгрузку и загрузку в .xls.
Обработка будет более востребована.
(43)Нет заново покупать не надо. Можно просто мне написать.
НО есть одно НО. Я не увидел вас в списке скачавших данную обработку ни в указанную дату ни какую другую.
Возможно вы что-то перепутали и 16.01.2019 вы покупали другую обработку. В этом случае ничем помочь не смогу
НО есть одно НО. Я не увидел вас в списке скачавших данную обработку ни в указанную дату ни какую другую.
Возможно вы что-то перепутали и 16.01.2019 вы покупали другую обработку. В этом случае ничем помочь не смогу
Вопросы с вознаграждением
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|