0. json 2552 15.10.18 03:46 Сейчас в теме

Универсальный инструмент для переноса данных через табличный документ (УФ)

Для опытных пользователей, разработчиков, администраторов, консультантов

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. Rustig 1287 15.10.18 10:11 Сейчас в теме
2. Anyu-n 27 07.11.18 10:35 Сейчас в теме
Добрый день, а рабтает только для идентичных конфигураций? Для переноса пару доков их БП2 в БП3 пойдет, как думаете?
3. json 07.11.18 10:40 Сейчас в теме
(2) В БП2 и БП3 структура данных разная. Этим инструментом вашу задачу скорее всего не решить.
4. user625761_elena-proxorova 30.11.18 08:18 Сейчас в теме
Добрый день. А между Промышленной безопасностью и ЗУП 3, выполнит перенос?
5. json 2552 30.11.18 08:42 Сейчас в теме
(4) Инструмент переносит данные между конфигурациями с идентичной или почти идентичной структурой данных.
Если в конфигураторе объекты называются одинаково и поля этих объектов называются одинаково и имеют одинаковый тип, то они перенесутся, в противном случае - не перенесутся или будет ошибка.
Касательно конфигурации Промышленная безопасность - сказать ничего не могу, т.к. с такой не работал
6. maikl007 87 16.01.19 11:54 Сейчас в теме
Ваша обработка не работает, зря потратил старпмани.
{ВнешняяОбработка.ПереносДанных.МодульОбъекта(218)}: Ошибка при вызове метода контекста (Выполнить)
РезультатЗапроса = Запрос.Выполнить();
по причине:
{(10, 20)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
И р.Представление <<?>>= т.Представление
7. json 2552 16.01.19 12:11 Сейчас в теме
(6)
Да, на строках неограниченной длины в регистрах падала ошибка.
Исправил. Скачайте еще раз (повторное скачивание в течение первых дней - бесплатное)
8. impron 16.01.19 21:24 Сейчас в теме
ERP 2.4.6.188 (демонстрационная база)
При попытке переноса справочника Номеклатура (нажимаем кнопку Выгрузить):
Выдает окно с сообщением: Получение элемента по индексу для значения не определено
В сообщения выводит:
{ВнешняяОбработка.ПереносДанных.МодульОбъекта(579)}: Значение не является значением объектного типа (Метаданные):[]
9. json 2552 16.01.19 21:44 Сейчас в теме
(8) Благодарю за подробное описание ошибки.
Была проблема при выгрузке реквизитов, назначенных только для группы или только для элементов.
Выложил исправленную версию
10. json 2552 16.01.19 22:33 Сейчас в теме
Выложил версию с исправлениями.
Если вы скачивали ранее и хотите получить обновленную версию - напишите мне в личку
11. impron 18.01.19 04:18 Сейчас в теме
ERP 2.4.6.188 (демонстрационная база).
На обновленной обработке заработало.
Но при переносе данных не сохранило структуру (см. приложенный файл).
Левая часть - структура в демонстрационной базе.
Правая часть - структура в базе в которую переносили номенклатуру.
Папки второго уровня переехали на первый уровень.
Прикрепленные файлы:
12. json 2552 18.01.19 08:15 Сейчас в теме
(11)
Мне не удалось повторить ошибку. Структура папок переносится корректно.

Могу предположить, что группы второго уровня ЯВНО не добавлялись в выгрузку. То есть выгружались элементы, которые находятся в этих группах. При этом когда при загрузке создавались элементы, создались и их родители. Но т.к. родители явно в выгрузке не были указаны, то они создались в корне.
В таком случае если выгрузить-загрузить только группы, то иерархия встанет на место

Если мое предположение не верно, то уточните, пожалуйста:
-версию платформы
-название справочника
-как выгружали загружали: выгрузили полностью справочник и загрузили в пустой справочник в другой базе или как-то иначе?
13. German_Tagil 7 18.02.19 05:50 Сейчас в теме
посмотрим - на обычных формах таб документ сильно выручал
14. Mx00 174 27.02.19 03:18 Сейчас в теме
Благодарю, обработка очень помогла восстановить удаленные данные, удобно что после формирования таблицы можно поправить перед загрузкой :-)
15. greywind 8 14.03.19 07:22 Сейчас в теме
Бух 3.0 (платформа 8.3.12, Релиз 3.0.67)
Ошибка:
ТИП: РегистрБухгалтерии.Хозрасчетный.Ошибка при создании данных из макета в строках с 8 по 12 : {ВнешняяОбработка.ПереносДанных.МодульОбъекта(1190)}: Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(1,1)}: Процедура или функция с указанным именем не определена (ЗаполнитьИзТаблицыЗначений_РегистрБухгалтерии)
16. greywind 8 14.03.19 08:26 Сейчас в теме
Ошибка срабатывает при Загрузке документа с движениями.
17. json 2552 14.03.19 08:57 Сейчас в теме
(16) Спасибо за подробное описание.
Выложил исправленную версию
18. bulas 184 17.10.19 09:24 Сейчас в теме
Отбор по организации (или по контрагенту) есть?
19. json 2552 17.10.19 09:55 Сейчас в теме
(18)
Стандартные отборы по любым реквизитам шапки. Если режим совместимости конфигурации не древний, то отборы можно накладывать и по табличным частям.
Прикрепленные файлы:
20. jack19 148 27.11.19 18:00 Сейчас в теме
1С:Предприятие 8.3 (8.3.13.1513)
Управление производственным предприятием, редакция 1.3 (1.3.122.2)
Обработка просто не открывается.
21. json 2552 27.11.19 19:09 Сейчас в теме
(20) Обработка запускается только в режиме управляемого приложения.
УФ в названии - управляемые формы.

Скорее всего запускаете УПП в режиме обычного приложения и пытаетесь открыть ее как внешнюю.

Есть два способа воспользоваться обработкой в конфигурации УПП:
1. Зайти в базу УПП в режиме управляемого приложения и открыть ее как внешнюю обработку
2. Встроить обработку в конфигурацию и не забыть включить флаг использования управляемых форм в режиме обычного приложения. После этого открыть обработку как внутреннюю
22. jack19 148 27.11.19 19:23 Сейчас в теме
(21) Извините, я в 8-ке можно сказать дилетант. Как запустить базу в режиме управляемого приложения?
23. json 2552 27.11.19 20:13 Сейчас в теме
(22) самый простой способ из конфигуратора.
В конфигураторе в верхнем меню выбрать: Отладка - Начало отладки - Тонкий клиент: начать отладку
24. jack19 148 27.11.19 20:25 Сейчас в теме
(23) Спасибо. Попробовал, запускается.
25. jack19 148 28.11.19 09:11 Сейчас в теме
(23) Прошу прощения, попробовал перенести справочник "Номенклатура" в одной базы в другую (однотипную). Получилось как-то криво, все папки (пустые) и элементы оказались в одном уровне. При выгрузке ставил в настройках глубину выгрузки = 4, при загрузке ничего не ставил. Наряду со справочником "Номенклатура" программа выгрузила ряд других справочников ("Контрагенты", "Виды номенклатуры", "Номенклатурные группы" и др.), ссылки на элементы которых, видимо были в справочнике "Номенклатура". По окончании загрузки программа выдала следующие сообщения:

ТИП: Справочник.ЕдиницыИзмерения.Ошибка при создании данных из макета в строках, начиная с 42 : {ВнешняяОбработка.ПереносДанных.МодульОбъекта(1154)}: Ошибка при вызове метода контекста (Вставить): Задано неправильное имя атрибута структуры

ТИП: Справочник.Номенклатура.Ошибка при создании данных из макета в строках, начиная с 43 621 : {ВнешняяОбработка.ПереносДанных.МодульОбъекта(1154)}: Ошибка при вызове метода контекста (Вставить): Задано неправильное имя атрибута структуры

ТИП: Справочник.ГруппыОбъектовРабот.Ошибка при создании данных из макета в строках, начиная с 89 427 : {(1)}: Поле объекта не обнаружено (ГруппыОбъектовРабот)

ТИП: Справочник.НоменклатурныеГруппы.Ошибка при создании данных из макета в строках, начиная с 89 449 : {(1)}: Поле объекта не обнаружено (ГруппыОбъектовРабот)

Что я не так сделал?
26. json 2552 28.11.19 09:54 Сейчас в теме
(25) попробуйте сделать следующее:

Перенесите группы номенаклатуры отдельно.
1. Установите отбор ЭтоГруппа = Истина,
2. уровень выгрузки = 0, затем
3. нажать кнопку Выбрать все
4. выгрузить
5. загрузить в другую базу

Потом уже грузите нужные элементы номенклатуры с уровнем = 1

Также внимательно прочитайте в публикации пункт Требования
Данные загружаются в режиме ОбменДанными.Загрузка = Истина. Это значит, что в процедурах ПередЗаписью, ПриЗаписи должны стоять отсечки, как в типовых конфигурациях, иначе некоторые объекты может не получиться записать.


Если перед записью или при записи кодом установлены запреты, проверяющие бизнес-логику, то запись может не получиться.
27. json 2552 28.11.19 10:03 Сейчас в теме
(25)
объясню, что значит уровень = 4.

Вот ты выгружаешь элемент номенклатуры - сам элемент со всеми реквизитами это уровень 0
Все ссылки, которые в нем упоминаются - это уровень 1.
Все ссылки, которые упоминаются в уровне 1 - это уровень 2
и т.д.

Вот выгружаешь ты элемент номенклатуры, который лежит в папке, которая вложена в другую папку, которая вложена в другую папку и т.д.

При уровне = 4 у тебя выгружается сам выгружаемый элемент номенклатуры, а также четыре уровня папок в которые он вложен.
Если уровень вложенности у переносимого элемента больше 4, четвертый родитель вверх от элемента будет помещен в корень.
В перегружаемом вами справочнике номенклатуры, похоже, что больше 4 уровней, поэтому часть папок оказалась в корне, потому что не переносился их родитель.

Чтобы этого избежать я написал в предыдущем сообщении что нужно сделать. А именно необходимо перенести отдельно всю иерархию папок.
А потом уже переносить элементы с настройкой уровень = 0 или 1 в зависимости от того хотим ли мы создавать ссылки, которые вложены в переносимый элемент или нет
28. jack19 148 28.11.19 10:20 Сейчас в теме
В перегружаемом вами справочнике номенклатуры, похоже, что больше 4 уровней, поэтому часть папок оказалась в корне, потому что не переносился их родитель.

Дело в том, что не часть папок оказалось в корне, а все папки и элементы оказались в корне. Но в общем понял, попробую в два этапа переносить. Не понял только про "отсечки", что это. Что касается указанных мною сообщений об ошибках, то понял, что дело в измененной конфигурации базы-источника (добавлены реквизиты), сделал аналогичные изменения в базе-приемника, посмотрим. Спасибо за то, что помогаете разобраться.
29. json 2552 28.11.19 10:29 Сейчас в теме
(28) прикладываю пример на скриншоте, как выглядит код типовых конфигурациях.

Вот в примере, если запись происходит в особом режиме, то запись выполняем без проверок (Возврат - означает что ничего не проверяем и не дозаполняем, а просто выходим из процедуры и записываем, а в обычном режиме на примере выполняются проверки и где-то при проверках может установиться Отказ=Истина или выскочить исключение)

Так вот во всех процедурах ПриЗаписи и ПередЗаписью должны стоять отсечки как в приведенном примере. То есть в самом начале каждой процедуры-обработчика должен быть такой код:

	Если ОбменДанными.Загрузка  Тогда
		Возврат;
	КонецЕсли;
Прикрепленные файлы:
30. jack19 148 28.11.19 11:58 Сейчас в теме
Да, спасибо. Еще одно уточнение. Как я понял "уровень" касается вложенных реквизитов, а не родителей? Т.е., если я буду переносить элементы с "уровень = 0", они попадут в ранее перенесенные папки? А что значит "уровень = 1"? Что будут создаваться элементы тех справочников, на которые ссылаются элементы номенклатуры?
31. json 2552 28.11.19 12:09 Сейчас в теме
(30)
Родитель - это тоже реквизит справочника номенклатуры. Если переносим с уровень=0 и родителя нет в базе, то загружаемый элемент попадет в корень. Если родитель на момент загрузки есть в базе, то загружаемый элемент будет подчиненным этому родителю.

Уровень = 1 - значит, что все ссылочные объекты, которые есть в реквизитах переносимого элемента, тоже создадутся и заполнятся как в базе источнике.
Уровень = 0 - значит, что все ссылочные объекты, которые есть в реквизитах - не будут создаваться, а если объект, на который ссылается реквизит в базе отсутствует, то в реквизите будет битая ссылка.
32. jack19 148 28.11.19 13:42 Сейчас в теме
(31) Сделал, как вы сказали - в 2 этапа. Сначала поставил Отбор: ЭтоГруппа = Истина. Перенеслись все папки. Потом поставил ЭтоГруппа = Ложь. Перенеслись все элементы, но не в папки, а в корень. Кроме того в поле "Код" элементов записывается не код, а часть наименования.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Санкт-Петербург
зарплата от 110 000 руб. до 150 000 руб.
Полный день

Консультант-аналитик 1С
Москва
зарплата до 200 000 руб.
Полный день

Программист 1С
Тольятти
зарплата от 70 000 руб.
Полный день

Программист 1С
Москва
зарплата до 160 000 руб.
Полный день

Программист 1С
Воронеж
зарплата от 70 000 руб.
Полный день