Перенос объектов 1С

































Простой и наглядный перенос объектов между любыми базами 1С 8 с предварительным анализом на возможные различия в данных (через файл, через интернет, через буфер обмена). Интерактивная настройка правил обмена на стороне источника и получателя.
В обработке есть удобный обзор по подсистемам, поиск и обработка данных по заданному фильтру. Сравнение объектов, поиск ссылок.
Конструктор кода по созданию объектов, написание скриптов и отладка мини-функций в УФ.
Отключение/включение регламентных заданий. Регистрация/снятие с регистрации объектов в планах обмена. И многое другое.
Инструменты администратора в одной обработке.

Предлагаю вашему вниманию, на правах разработчика, обработку Перенос объектов (версия 3.19).

Перечень основных возможностей:

 — Предварительный наглядный анализ данных перед непосредственной загрузкой в базу приемник;
 — Настройка правил перед выгрузкой;
 — Настройка правил перед загрузкой;
 — Обмен данными через интернет (с использованием сжатия zip);
 — В самой обработке есть удобный обзор и обработка данных на уровне конфигуратора;
 — Во всех версиях обработки используется одинаковый модуль объекта;
 — Запуск обработки из другой с заданными параметрами для автоматической выгрузки или загрузки;
 — Обработка при записи объектов использует по умолчанию признак ОбменДанными.Загрузка=Истина;
 — Есть возможность сравнить обороты по счетам между разными базами, что упрощает контроль переноса документов;
 — Можно сравнить количество объектов в базе, что упрощает контроль переноса объектов;
 — Использование только cервера для файлов (файлы выгрузки и загрузки будут находится на стороне сервера) для версии УФ;
 — Можно использовать уникальный идентификатор при переносе данных;
 — Фильтр по подсистемам в обзоре конфигурации и при выгрузке объектов;
 — В правилах выгрузки можно добавить любой произвольный запрос;
 — Выгружать зависимые сведения при выгрузке справочников (например Контрагенты и их контактная информация);
 — Создание объектов из текста на основании строк вида Код=Наименование;
 — Упорядочить кода заданного справочника с предварительным анализом;
 — Печать активной таблицы в режиме управляемых форм;
 — Конструктор кода по созданию выбранного объекта;
 — Сохранить любое ХранилищеЗначения (ДвоичныеДанные) в файл;
 — Проверка использования реквизитов в базе;
 — Запуск любого приложения после окончания операции по загрузке или выгрузке данных;
 — Поиск ссылок на выбранный объект с указанием имени реквизита, где объект используется;
— Перенос файлов через текст без использования файлов;
— Выгрузка отмеченных объектов в обзоре данных сразу в текст;
— Проверка пустых субконто в движениях;
— Сравнить детально отмеченные объекты;
— Иерархическая печать элементов справочников;
— Не выгружать все реквизиты шапки и табличной части;
— Выгрузка объектов на основе данных журнала регистрации;
— Показать все варианты значения реквизита;
— Групповая замена номеров документов;
— Групповая замена кодов справочника;
— Табло, скрипты и отладка функций в УФ;
— Включение/отключение регламентного задания одним кликом мыши;
— Регистрация отмеченных объектов в планах обмена;
— Многофункциональный поиск по структуре метаданных и полнотекстовый поиск;
— Пометить на удаление отмеченные при отсутствие ссылок на объект;
— Выгрузка структуры метаданных конфигурации опционально.

 Обработка "ПереносОбъектов" больше всего подходит для точечного переноса объектов между базами данных 1С 8.

 Например, необходимо перенести несколько документов за один день. Отмечаем в выгрузке период и необходимый вид документов,
и обработка сама подтянет все остальные объекты на которые есть ссылки по цепочке, пока не доберется до примитивных типов (строка, число, дата).

  Перед использованием пререноса данных рекомендуется запустить отчет в самой обработке "Обзор-Отчеты-Проверка уникальности объектов для переноса", который проверит на дубликат код и наименование в справочниках, т.к. для переноса объектов без уникального идентификатора это важно. Там же есть и возможность исправить задвоения. Если при переносе используется уникальный идентификатор, то в запуске отчета на уникальность нет необходимости.

  Выкладываю два варианта обработки:

MovingObjects-mf.epf    — для 1С 8.3 (Управляемые формы и обычные формы, и для регламентных заданий)
MovingObjects-8.1.epf  — для 1С 8.1, 8.2, 8.3 (обычные формы, с функцией Состояние, не будет работать на сервере)

  Если Вы считаете, что обработка чего-то стоит, или хотите поддержать ее дальнейшее развитие, то Вы можете перечислить любую сумму автору обработки минуя посредников. Номер интернет-кошелька Яндекс-Деньги — 4100170082825

Видео-инструкции

Надеюсь, обработка поможет программистам 1С в наших рутинных делах. 🙂

99 Comments

  1. graZy

    +

    возможно есть и другое что (даже видел тут платную правда похожую на типовую выгрузку xml)

    но …

    для меня реально что-то похожего не хватало от 1с (обычной выгрузки — загрузки, без возможности особых «извращений»)

    Reply
  2. y-ha

    Присоединюсь — обработка дельная, перенос номенклатуры из БП 2.0 в БП 3.0 вместе с ценами сделала.

    Reply
  3. Константин С.

    При выгрузке и загрузке выдало сообщение:

    Внимание! У элемента справочника пустой код и пустое наименование! Вид = НомераГТД

    Можно добавить информационности

    Reply
  4. moolex

    (3) Константин С., из сообщения вроде понятно, что элемент справочника НомераГТД не имеет ни кода ни наименования.

    здесь два варианта:

    1. найти этот элемент в базе источнике(или в базе получателе) и установить любой код или наименование и заново выгрузить. (это можно сделать как раз на закладке обзор через фильтр и обработку)

    2. Вариант когда в конфигурации стоит длина кода=0 и длина наименования=0, — это вообще плохо, когда в информационной базе есть такие справочники. Здесь либо использовать УникальныйИдентификатор, либо обработка будет постоянно делать новый элемент при загрузке данных и возможно будет постоянно показывать разницу при анализе данных.

    Reply
  5. Константин С.

    Cпасибо за ответ, я вообшем разобрался как решить. Хотель обратить внимание на информационность

    А еще прогресс загрузки выгрузки в УФ.

    Reply
  6. moolex

    (5) Константин С., с прогрессом загрузки/выгрузки в УФ — это я еще не разобрался с УФ. Эта обработка — мое первое знакомство с УФ 🙂

    если есть какие ссылки на пример прогресса — буду признателен.

    Reply
  7. Константин С.
  8. necropunk

    Хммм… Интересно, а если я пытаюсь, реализовать, например, такое: Несколько баз, абсолютно разные конфигурации, даже имена реквизитов и реквизитов ТЧ не совпадают. В каждой базе открывается обработка, ей выбираются несколько реализаций и выгружаются в XML-файл. Потом в основной базе я загружаю эти файлы и у меня создаются нормальные реализации. Эта обработка умеет делать похожее нечеткое чтение? Мне текущий вариант с перебором возможных наименований реквизитов не нравится, как раз думал как бы лучше сделать…

    Reply
  9. moolex

    (8) necropunk, Пример, который вы описали — у меня есть что-то похожее у клиента. Обработка дорабатывается на стороне источников (код обработки открыт), можно сделать любые преобразования из базы источника. Даже можно создать виртуальные документы получателя на основании каких-то данных в источнике. На стороне получателей все загружается с удобным предварительным сравнением в ручную (либо в автоматическом режиме после внедрения).

    Если интересно сотрудничество, то пишите в личку…

    Reply
  10. necropunk

    (9) спасибо. Скачал обработку, посмотрел. Порадовали примеры использования в макетах, будет время — внимательнее посмотрю.

    Reply
  11. gull22

    Интересно.Плюс.

    Reply
  12. laf

    Спасибо, тоже проверю, давно ждали.

    Reply
  13. MUSIK

    Добрый день! Попыталась скачать варианты для 8.3 (я купила абонемент, он действителен по кр. мере до конца апреля, оставалось 8 $m). Появилось сообщение «Загрузка файла началась», но этим сообщением всё и ограничилось, файл не скачался, хотя 2 $m с меня снялись. Прошу помощи!!! Ирина

    Reply
  14. MUSIK

    Кстати, перед этой неудачной попыткой вполне удачно скачала «ВыгрузкаЗагрузкаJSON82_1.2.1»

    Reply
  15. pvb2003

    Что бы это значило — при выгрузке:

    «Внимание! есть необработанные данные типов —

    Тип,Массив,Фиксированное соответствие,Фиксированная

    структура,Фиксированный массив,Дерево значений,Табличный

    документ,Двоичные данные»

    Конфигурация БП3.0+ТСЖ

    При загрузке «Ключ не найден»

    Reply
  16. steelsi

    При анализе (перед выгрузкой) выгрузке одного документа «ОперацияБух» (БП 3.0.39.60)

    выдает ошибку

    Ошибка инициализации модуля: Документ.УдалитьПередачаСЗВ4вПФР.МодульМенеджера

    по причине:

    {Документ.УдалитьПередачаСЗВ4вПФР.МодульМенеджера(62,60)}: Переменная не определена (ОбщегоНазначенияЗК)

    СтрокаОписания.Представление = ПустойРаздел25РасчетаРСВ1(<<?>>ОбщегоНазначенияЗК.ПолучитьЗначениеРеквизита(Ссылка,»Организация»), ДатаПодписи, НумероватьСтраницы, НомерПервойСтраницы);

    и тд.

    Reply
  17. steelsi

    Вот еще одна ошибка на БП 3.0.39.60

    Ошибка инициализации модуля: РегистрНакопления.УдалитьНДФЛПредоставленныеСтандартныеВычетыФизЛиц.МодульНабораЗаписей

    по причине:

    {РегистрНакопления.УдалитьНДФЛПредоставленныеСтандартныеВычетыФизЛиц.МодульНабораЗаписей(8,2)}: Переменная не определена (СправкиПоНДФЛ)

    <<?>>СправкиПоНДФЛ.ОчиститьКодыОКТМО(ЭтотОбъект);

    Reply
  18. AlexO
    Не XML, т.е. возможен перенос больших объемов данных без зависаний;

    Это на пять )))

    1С из кожи лезет, чтобы протолкнуть обмены через файлы и прочие XML, а тут — ей такая подножка )))

    Reply
  19. moolex

    (16) steelsi, (17) steelsi, Проверено на БП 3.0.39.59 — ошибок не возникает…

    Да и по ошибке видно, что она к обработке не относится.

    Reply
  20. moolex

    (15) pvb2003, Обработки доработаны, Теперь можно переносить Тип,Массив,Фиксированное соответствие,Фиксированная

    структура,Фиксированный массив,Дерево значений,Табличный документ,Двоичные данные

    Reply
  21. Yashazz

    (18) AlexO, я вот не понял, чем автору не угодил xml. Позабавила логика: «не xml, а значит, избежим зависаний». И это при том, что работа с xml — один из самых быстрых способов и экономичных (ну, не считая json).

    Кстати, автор, а на каком принципе обмен реализован? Свой формат придумали?

    Reply
  22. BigRig

    Добрый день!

    При Выгрузке счета-фактуры (полученный и выданный) из УТ 10.3 Базовой пишет:

    {ВнешняяОбработка.ПереносОбъектов.МодульОбъекта(2391)}: Ошибка при вызове метода контекста (ЗначениеЗаполнено)

    Если (ЗначениеЗаполнено(Объект1С)) Тогда

    по причине:

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

    Что я делаю не так? Помогите, пожалуйста

    Reply
  23. moolex

    (21) Yashazz, Проверил на тестах, да, согласен — XML сейчас в 8-ке быстрее благодаря встроенным функциям ПрочитатьXML(), ЗаписатьXML().

    Тесты показали результаты на больших объемах около 100 000 объектов:

    Выгрузка/Загрузка в XML быстрее ровно в 3 раза чем Перенос объектов.

    Утверждение про зависание убрал из описания. Вообще обработка появилась на заре перехода с 7-ки на 8-ку, и там все было хуже XML.

    Но у Переноса объектов:

    1. Еще есть потенциал для ускорения выгрузки и загрузки объектов (жаль что пока в 1C нет что-то типа «Новый ЧтениеДвоичныхДанных()», но думаю это решаемо);

    2. Не нужны дополнительные конфигурации для настройки правил обмена;

    3. Файлы получаются гораздо компактнее (1.8 Мб в SFO против 35 Мб в XML);

    4. файл SFO на выходе нормализован уже сам по себе (как пример — если в базе допущена орфографическая ошибка в строке, то она легко исправляется только в одном месте в файле в списке уникальных строк, при загрузке она исчезает).

    5. При загрузке предварительно анализируя данные пользователь видит что он загружает, как загружает, то есть он может «почувствовать» данные (а это лучше, чем черный ящик «выгрузил/загрузил», а потом думай что именно загрузилось).

    Reply
  24. moolex

    (21) Yashazz, формат файла SFO прост и не так избыточен как XML:

    Файл SFO напоминает ini файл и состоит в основном из четырех разделов. В наименование каждого раздела добавляется количество строк в разделе.

    [SFO] — в данном разделе находится информация о времени выгрузки, базе данных и т.д. В данный раздел можно добавлять любую необходимую информацию;

    [Строки] — список уникальных строк, чисел, дат;

    [Объекты] — список объектов в виде строк вида «ИмяСвойства1=Значение1,ИмяСвойства2=Значение2…»;

    Если Значение представляет собой примитивный тип (строка, число, дата), то оно равно номеру строки из раздела «[Строки]»

    Если Значение является ссылкой на другой объект, то оно равно номеру строки из раздела «[Объекты]» со знаком минус;

    [Иерархия] — Иерархия объектов, необходима для загрузки, чтобы понять какие объекты надо создавать в базе раньше, а какие позже. Данный раздел выгружается только при необходимости, когда есть сложные зависимости объектов.

    Reply
  25. moolex

    (22) DimaBab, исправлено в последней версии обработке.

    Reply
  26. Yashazz

    (24) ну, не знаю… Использовать формат, с которым не умеет работать платформа и который не читается большинством других обработок, общепринятых в среде 1С-ников, это, на мой взгляд, тупиковый путь. Впрочем, главное, чтобы работало)

    Reply
  27. AlexO

    (23)

    XML сейчас в 8-ке быстрее благодаря встроенным функциям ПрочитатьXML(), ЗаписатьXML().

    Это все тоже построчное чтение текстового файла, в 1С-XML только читается «несколько строк» как «один объект». В XML «проще» чем в «обычном» тексте переносить иерархию и связанные объекты.

    с JSON все тоже самое, только формат XML другой.

    DOM вроде как читает «из памяти», но в память-то мы читаем и помещаем все тот же текстовый файл все теми же технологиями чтения текстовых файлов от 1С.

    Все продолжают обманывать сами себя — придумывают себе использование «новых» форматов «а вот я в CSV… а я в XML… а я в SFO…»

    А все одно — использование чтения из текстового файла, с которым у 1с всегда и везде были проблемы.

    Т.е. кардинально никакого прироста нет.

    (23)

    Выгрузка/Загрузка в XML быстрее ровно в 3 раза чем Перенос объектов.

    И каковы цифры? И если у вас чтение одного текста в три раза быстрее чтения того же самого текста — то большие вопросы в оптимизации самой вашей постобработки: у вас большие тормоза при обработке данных, не считая тормозов при чтении текста.

    В 1С нет никаких «супер таинственных технологий» чтения XML: все также «построчно», все также «последовательно».

    Reply
  28. moolex

    (26) Yashazz, «тупиковый путь» — это всегда следовать за кем-то, как в игрушке про леммингов 🙂

    А если серьезно, то обработка используется как законченный продукт, ей не нужны другие «обработки общепринятые в среде 1С-ников».

    Задача обработки — перенести(или просто сравнить) Х объектов из базы А в базу Б, и обработка делает это просто и без сложных настроек.

    Reply
  29. Yashazz

    (28) [quote]»тупиковый путь» — это всегда следовать за кем-то, как в игрушке про леммингов[/quote]

    moolex, на мой сугубо личный взгляд, вы несёте полный бред, с любой из точек зрения — что технической, что экономической, что маркетинговой. Жалкое существование «особенных» продуктов, пошедших «своим путём», когда кругом рулят мейнстрим и стандарт, тому доказательство. Впрочем, если найти «своего» клиента, сесть ему на шею и уютно сидеть лет 10, то поддерживайте любой формат, какой хотите, но не удивляйтесь, что большой прогресс пройдёт мимо, и вы с вашей поделкой никому не будете нужны. Но это оффтоп.

    Reply
  30. moolex

    (29) Yashazz, «с любой из точек зрения — что технической, что экономической» — вот как раз клиенту совершенно без разницы как программист переносит данных, главное для него конечная сумма в счете за проделанную работу, а сумма в счете всегда зависит от времени работы программиста.

    И я не имею ничего против типового переноса через XML. Каждое решение надо использовать для своих целей и в зависимости от конкретной ситуации.

    Reply
  31. ferrari2000

    При выгрузке из БП 3.0.40.31 (обработка MovingObjects-mf.epf) возникает ошибка:

    «Каталог не обнаружен »D:БухгалтерияБП_01-01-2015-01-02-20151.xml»

    В поле выгрузки выбранный путь и имя файла меняются на ‘C:Tempv8_6ceb_4c’. (вместо »D:БухгалтерияБП_01-01-2015-01-02-2015.sfo»)

    Файл на выходе создается, но проверить его формат и состав выгруженных данных весьма затруднительно.

    Не совсем понятно, с чем связана данная ошибка. Пробовал на другой версии конфигурации 3.0.39 и версии Предприятия пониже, на другом компе, дабы исключить локальные факторы — ошибка везде повторяется!

    Reply
  32. moolex

    (31) ferrari2000, в поле Файл на закладке выгрузка введите «C:1.sfo» и попробуйте выгрузить. Если выгрузка пройдет, значит вы не правильно указали путь до этого…

    Reply
  33. ferrari2000

    К сожалению (в поле Файл на закладке выгрузка введите «C:1.sfo») получаю по окончании выгрузки аналогичное сообщение «Каталог не обнаружен ‘C:11.mxl’, а в строке выгрузки введенное значение файла для выгрузки меняется на «C:Tempv8_678d_49». Как я уже писал, выходной файл действительно создается! Но проверить корректность его формата и содержащихся в нем данных весьма сложно, учитывая ошибку в процессе формирования. Больше похоже на ошибку в обработке, которая создает в папке Temp несколько каталогов (в моем случае, v8_678d_25 с файлами *.mxl и *.dat и v8_678d_49 с файлами *.mxl), данные из которых затем должны форматироваться и записываться в выходной sfo-файл.

    Проблема возникает только в обработке MovingObjects-mf.epf и вызывает ее конкретный тип документа, пока не могу сказать какой — пробовать по каждому довольно хлопотно, исключаю группами.

    Reply
  34. moolex

    (33) ferrari2000, Ошибка исправлена.

    Текущая версия обработки — 2.54

    Reply
  35. Информаудитсервис

    {ВнешняяОбработка.ПереносОбъектов.МодульОбъекта(1170)}: Ошибка при установке значения атрибута контекста (Родитель)

    НовыйОбъект.Родитель = ТЗОбъекты.Получить(-Число(ИдРодителя)-1).Объект1С;

    по причине:

    Справочник не многоуровневый

    Скачал, обработку она не работает.

    Решите проблемму.

    Reply
  36. AlexO

    (34)

    Текущая версия обработки — 2.54

    А вы сами обработки на страничке не обновляете?

    Reply
  37. moolex

    (35) Информаудитсервис, Исправлено, текущая версия обработок 2.55.

    И не забудьте перед загрузкой поставить флаг «Конфигурации различны», т.к. по ошибке видно что конфигурация источник не равна приемнику

    Reply
  38. alis-finance

    Проверка мутабельных значений не поддерживается. Что делать с такой проблемой?

    Reply
  39. moolex

    (38) alis-finance, а можно номер строки модуля, где выдается такая ошибка?

    Reply
  40. moolex

    (38) alis-finance, Исправлено, текущая версия обработок 2.56

    Reply
  41. AlexSunS

    Это ж надо как Бывает, чую скоро когда у основной массы кодеров дойдут руки до Графита, еще не то появится…..и Это Хорошо )

    Reply
  42. y-ha

    Возник вопрос по обработке. Подскажите как быть.

    Необходимо из одной базы выгрузить данные в другую базу. (объединить две базы).

    По справочникам идет сопоставление по коду. В обоих базах в некоторых справочниках коды повторяются. Где-то это хорошо (валюты к примеру), а где-то — нет (Номенклатура).

    Как быть?

    Из пожеланий:

    1. сохранять настройку выбранных объектов в дереве метаданных в файл.

    2. Возможность задавать для каждого объекта те реквизиты, по которым будет происходить синхронизация.

    Первый раз данные в новую базу были выгружены — оказалось что не перегружена учетная политика. После добавления ее в выгрузку, при попытке загрузить заново весь объем данных (с документами), вылезла ошибка:

    {ВнешняяОбработка.ПереносОбъектов.МодульОбъекта(4652)}: Поле объекта не обнаружено (Вид)

    Вид = ВернутьСтроку(СТЗ2.Вид);

    Reply
  43. moolex

    (42) y-ha, по ошибке, попробуйте удалить эту строку из обработки

    4652 — Вид = ВернутьСтроку(СТЗ2.Вид) — она там явно лишняя

    если ошибка уйдет перевыложу новые версии…

    пожелания учту…

    «В обоих базах в некоторых справочниках коды повторяются.» — самый простой способ — для тех спр. в которых нельзя совмещать объекты по коду — упорядочить кода и в первой и во второй базе со смещением (например в первой базе с 1 начать, а во второй с 10000).

    Reply
  44. y-ha

    (43)

    По поводу ошибки — будет время, протестирую. Но в принципе основная задача была достигнута — данные были перенесены. Пользователи сейчас тестируют.

    По поводу изменения кода — с документами так и было сделано — в организации добавлен префикс и все документы переименованы с учетом префикса.

    Со справочниками решение было более красивое — из выгружаемых данных код был удален (через настройки выгрузки). А при загрузке установлен флаг — сверять только по реквизитам, имеющимся в выгрузке. Мне кажется решение боле красивое — у загруженных элементов код был назначен новый.

    Обработка помогла, т.к. наглядно показывает какие данные были найдены в базе загрузки, а какие нет. Хорошо что данных было не так много.

    Из пожеланий — было бы здорово иметь флаг обновлять данные или нет. В идеале, даже не для всех данных/справочника, а для конкретного элемента. т.е. если справочник в базе приемнике боле новый чем в базе источнике, то обновления не происходит. Вроде сейчас всегда идет обновление данных, так?

    Было бы полезно добавить в описание по каким реквизитам идет сравнение данных. Тем более есть несколько настроек, влияющих на этот алгоритм.

    Reply
  45. moolex

    (44) y-ha, «было бы здорово иметь флаг обновлять данные или нет…» — не понятно это пожелание,

    что значит: «если справочник в базе приемнике боле новый » ?

    Reply
  46. y-ha

    (45)

    Идет выгрузка данных из одной базы (источник, допустим некая древняя резервная копия) в другую базу (приемник — рабочая база).

    Понятно что со временем некоторые реквизиты элементов справочников могли обновиться в рабочей базе. (допустим у контрагента поменялся КПП).

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

    Аналог в конвертации данных — там есть флаг «Не замещать существующие объекты …» — хочется аналог такого флага либо для вида справочника/документа в целом, либо для каждого элемента справочника/документа/….

    Reply
  47. moolex

    (46) y-ha, Обработка перенос объектов была спроектирована таким образом, что все настраивается в выгрузке (в правилах выгрузки или прямо в коде обработки).

    Это было обусловлено тем, что на этапе загрузки был человек, который выполнял роль проверки и мало смыслил в программировании (и не особо хотел что то там настраивать).

    Т.е. инструмент для управления есть, просто он находится на этапе выгрузке. Так в большинстве случаев проще контролировать обмен данными…

    Выгружаем немного — анализируем перед загрузкой — не правильно — корректируем выгрузку — и по кругу…

    Но конечно Ваши пожелания я учту и запишу в план реализации доработок к Переносу объектов.

    Reply
  48. y-ha

    Концепция понятна. Тогда задам вопрос в рамках этой концепции.

    Как на этапе выгрузки указать обработке чтобы она не замещала данные по одному конкретному элементу справочника (в общем случае нескольким, или даже всем)?

    Reply
  49. moolex

    (48) y-ha, изменить код элемента в базе источнике на другой, которого нет в базе получателе.

    либо перед загрузкой изменить код в базе получателе. вариантов много.

    или , если вопрос в том, чтобы объект определялся, но не перетирались остальные реквизиты объекта, тогда надо просто отключить через правила выгрузки все ненужные реквизиты.

    Reply
  50. y-ha

    (49)

    Да, но при изменении кода будут дубли, так что не вариант.

    Если отключу элементы — то, допустим, одинаковый вроде как справочник склад не подтянется в документах.

    Ну в общем, понятно. что есть — то есть. Еще раз спасибо, обработка помогла.

    Reply
  51. moolex

    (50) y-ha, Если надо, чтобы в документах подтянулся склад ( и он есть в приемнике с тем же кодом, но не хотелось бы перезаписывать его реквизиты), то надо надо выгружать все как есть только в правила выгрузки добавить что-то типа:

    [ИсключаемыеСвойства]

    Справочник.МестаХранения.РеквизитХ

    и .т.д.

    можно и наименование исключить

    Reply
  52. moolex

    По просьбам пользователей добавлена возможность задать правила перед анализом и загрузкой данных.

    Reply
  53. ric394

    Вопрос от ЧАЙНИКА. (бухгалтера, не программиста)

    Как подключить вашу обработку в 1С Бухгалтерию 8.3, если можно по шагам, с момента запуска 1С Бухгалтерии.

    Reply
  54. moolex

    (53) ric394, обработку можно открыть через меню «Файл-Открыть» (или просто в любом месте нажмите «Ctrl+ O»), если данного пункта нет, то у вас нет прав на открытие внешних обработок, тогда нужен знаток 1С 🙂

    Reply
  55. ric394

    Спасибо за ответ.

    Открыл, но выходит ошибка. Права полные. Скрин прилагаю

    Reply
  56. ric394

    Релиз.

    Reply
  57. ric394

    (54)

    При открытии файла в 1С Бухгалтерии 8.2 MovingObjects.epf выходит ошибка: Поле объекта не обнаружено (НеИспользоватьЭРДВПериодике)

    При открытии файла MovingObjects-mf.epf вообще не каких изменений не происходит.

    Может что-то не так делаю?

    Может нужно открывать файл в конфигураторе?

    Reply
  58. moolex

    (57) ric394, поправил, теперь должно все работать

    Reply
  59. ric394

    (58)

    Да, работает. Спасибо!

    Reply
  60. xten

    Я правильно понимаю, что это чудо-обработка позволяет переносить данные между разными конфигурациями?

    Reply
  61. moolex

    (60) xten, конечно, тока для различных конфигураций необходимо настроить правила либо на этапе выгрузки, либо на этапе загрузки.

    Reply
  62. Archetype7

    Прекрасная обработка, спасибо! Как бы приобрести обработку минуя подписку.

    Reply
  63. b-dm

    Надеюсь хорошая обработка, сейчас скачаю 🙂

    Reply
  64. WildFire

    Автор, скажите пожалуйста, эта обработка позволяет переносить данные справочников типа Хранилище значений? Если да, то как будет осуществляться сравнение уже имеющихся объектов в базе-приемнике — по коду, наименованию или гуиду? На скриншотах это не ясно.

    Reply
  65. moolex

    (64) WildFire, ХранилищеЗначения переносится.

    Само по себе ХранилищеЗначения не имеет данных.Используется метод ХранилищеЗначения.Получить() и его уже переносит обработка и синхронизирует.

    Т.е. если в хранилище была коллекция (таблица,дерево,список), то она будет перенесена как отдельный объект коллекция.

    Если был двоичный файл, то он перенесется как отдельный внешний файл.

    Reply
  66. Lancelot-2M

    Скачал для УФ, запустил в демобухии, жмакнул на ПоказатьТаблицуПравилВыгрузки — пишет

    {Форма.УправляемаяФорма.Форма(2566)}: Поле объекта не обнаружено (ПереносОбъектов)

    Макет = Обработки.ПереносОбъектов.ПолучитьМакет(«МакетПоказать»);

    Её обязательно встраивать?

    Reply
  67. moolex

    (66) Lancelot-2M, Нет, встраивать не обязательно, ошибку уберу в след. версии.

    надо заменить:

    Макет = Обработки.ПереносОбъектов.ПолучитьМакет(«МакетПоказать»);

    на

    Обработка = РеквизитФормыВЗначение(«Объект»);

    Макет = Обработка.ПолучитьМакет(«МакетПоказать»);

    Reply
  68. WildFire

    Скажите пожалуйста, как в этой обработке убрать перенос любых связанных документов? Например, выгружаем 1 элемент справочника «Сотрудники», а он тянет за собой несколько сотен документов. Вставлял их в правила загрузки, вот так:

    [ИсключаемыеОбъекты]

    Документ.Прием

    Документ.НачПоСреднему

    Документ.Увольнение

    не помогает, переносятся все равно. Как быть?

    Reply
  69. WildFire

    Прошу пардону, поправка: вставлял в правила выгрузки.

    Reply
  70. WildFire

    (65) да, но в этом хранилище как раз расположены объекты — элементы справочников и документов. Вот эти самые объекты как переносятся, по наименованию, коду или гуиду?

    Reply
  71. moolex

    (69) WildFire,

    Надо в [ИсключаемыеСвойства] писать и не сами документы, а свойства Спр.Сотрудники в которых есть эти документы

    например

    [ИсключаемыеСвойства]

    Справочник.Сотрудники.ДокументПриемаНаРаботу

    Reply
  72. moolex

    (70) WildFire, по наименованию, коду или гуиду?

    как настроить правила выгрузки так и будут.

    по гуиду — надо добавить флаг «Выгружать уникальный идентификатор»

    по коду — по ум. должно быть

    по наименованию, а код не нужен — надо добавить в

    [ИсключаемыеСвойства]

    Справочник.Х.Код

    Reply
  73. WildFire

    Спасибо за ответ!

    А можно исключить при выгрузке полностью содержимое табличной части одним махом? Например, в справочнике есть табчасть «ТрудовойСтаж», но если проставить в исключаемых свойствах строку «Справочник.Сотрудники.ТрудовойСтаж», то это ни к чему не приводит, приходится перечислять каждый реквизит табчасти отдельно, например Справочник.Сотрудники.ТрудовойСтаж.КадровыйДокумент.

    Reply
  74. moolex

    (73) WildFire, учту в новой версии

    Reply
  75. WildFire

    Можно еще вопрос? Смотря на настройки загрузки, не совсем понял, можно ли указать для какого-либо элемента справочника жестко заданные условия, например родителя? Сейчас при загрузке полностью копируется родитель из выгрузки, точнее дублируется, т.к. родитель с таким наименованием уже есть.

    Reply
  76. moolex

    (75) WildFire, пока такое нельзя указать, проще в коде в лоб прописать (тем более это надо прописать только в одном месте):

    переделать код в строке «ОбъектДляЗаписи.Родитель = ТЗОбъекты.Получить(-Ид-1).Объект1С;»

    Reply
  77. WildFire

    (76) странно, эта строчка находится в функции ЗагрузитьСвойстваОбъекта, а отладчик ее не ловит — она походу не вызывается 🙁

    Также заметил, что есть функция ИзменитьКодДругогоОбъектаПриСовпаденииКода(), но тоже походу не работает. При переносе элементов справочника, в случае есть такой код уже есть, то все имеющиеся данные в базе-приемнике затираются на данные выгрузки.

    Reply
  78. fktrc171

    Подскажите пож-та , а можно с помощью этой обработки перенести ФизЛица из ЗУП 2.5 в ЗБУ 3.0 ? Думаю сотрудников точно не перенесем , хотя бы Физ Лица ? И какой вариант обработки мне нужен в этом случае — для 8.2 и 8.3 или обе ? И если можно схематично мои действия для непрограммиста ?

    Reply
  79. IDija

    Подскажите как сделать, чтоб не замещать найденные по УИДу объекты, может в правилах как то обозначить? Например перегружаю справочник, а у элемента изменено наименование или код, как сделать так чтоб объект не пере затерся?

    Reply
  80. moolex

    (79) IDija, Попробуйте добавить в правила выгрузки добавить:

    [ИсключаемыеСвойства]

    Справочник.Х.УникальныйИдентификатор

    — для справочника Х будет синхронизация по коду или по наименованию (если нет кода)

    и — если надо сделать сравнение по специальному реквизиту, то в правила загрузки надо добавить:

    [НайтиПоРеквизиту]

    Справочник.Х.ИмяРеквизита

    Reply
  81. pvlunegov

    Огромное спасибо автору за отлично работающую обработку.

    Помогла перенести кучу различных документов из базы 1с 8.1 в 8.3 с различными конфигурациями.

    Пробовал и типовыми обработками обмена xml и другими, куча ошибок в загрузке.

    Ваша обработка сработала без проблем, загрузила многие тысячи документов. Причем конфигурации документов отличались. Несильно, но существенно.

    А писать правила обмена под каждую конфигурацию, коих несколько — с ума сойти можно, как долго, Заказчик не оценит.

    Ваша обработка спасла мне жизнь. Спасибо!

    Reply
  82. moolex

    (81) pvlunegov, Спасибо большое за отзыв…

    Скоро выйдет новая версия.

    Просьба сообщить про разного рода косяки, чтобы их поправить в новой версии.

    Reply
  83. Yran

    Moolex, подскажи с платформы 8.2 ЗУП 2.5 на 8.3 ЗУП 3.0 перенести объекты можно?

    Reply
  84. moolex

    (83) Yran, можно, только надо настраивать правила.

    Reply
  85. moolex

    Обращаю Ваше внимание, что обработка не требует никаких настроек правил при обмене между идентичными конфигурациями.

    Reply
  86. СуперСтар

    Есть справочник статей ДДС в двух базах. Основная часть элементов совпадает по наименованию. Но различаются коды и структура групп и подчиненности. Нужно перенести структуру и коды из базы 1 в 2. Чтобы сопоставление происходило по наименованию, а коды заменились из базы источника.

    При выгрузке УИД не выгружаю. При загрузке включаю обе галки на стр. Правила загрузки и в правилах пишу [НайтиПоРеквизиту]/Справочник.СтатьиДвиженияДенежныхСредств.Наименование.

    После загрузки все элементы задваиваются, сопоставление по наименованию не происходит. Что в настройке не так?

    Reply
  87. Sl@v@

    Во время выгрузки справочников с количеством записей больше 1000 (найдено условие методом исключения) — программа закрывается.

    1С 8.3.4 (управл формы) УТ 3.0 для Украины.

    Все остальные позиции выгружаются с сообщением:

    «Внимание! есть необработанные данные типов — Настройки компоновки данных,Поле компоновки данных,Пользовательские настройки компоновки данных,Схема компоновки данных».

    Подскажите пожалуйста, каким способом можно понять причину вылета обработки?

    Reply
  88. moolex

    (87) Sl@v@, Проблема вылета вероятно в большом объеме данных типа ХранилищеЗначения или похожих типов.

    Самой простой способ исправить проблему — методом исключения, используйте при выгрузке правила для реквизитов с типом ХранилищеЗначения:

    [ИсключаемыеСвойства]

    Справочник.<ИмяСпр>.<ИмяРеквизита>

    Тоже самое и для необработанных типов, скорее всего эти данные (пользовательские настройки) и не нужны в базе получателе.

    Если они все-таки необходимы, то надо дописывать перенос таких типов данных.

    Все стандартные типы данных переносятся, и большом количестве, проверено на рабочих базах.

    Reply
  89. MyPuK_OLD

    moolex, доброго Вам времени суток!

    Очень заинтересовали обработки по выгрузке — загрузке.

    1) Возможен ли односторонний обмен из УТ 10.3 в БП 3.0?

    Конфигурации не типовые. Каким образом настраивается сопоставление с объектами, которые уже были перенесены?

    Может имеется какая-то инструкция по настройке правил для разных конфигураций?

    2) Как могут помочь данные обработки при переходе с 1.6 на 3.0(остатки перенести, какие-то справочники и пр.)?

    Заранее спасибо.

    Reply
  90. moolex

    (89) MyPuK_OLD, все можно перенести, я всегда делаю так:

    1. начинаю с какого то одного вида документов и беру небольшой период.

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

    2. можно перенести остатки — для этого в обработке есть пример процедуры (см. Макет-ПримерВыгрузкиОстатковУТвКА_ОдинСклад), на основе данного примера можно сделать свою выгрузку необходимых остатков. Но здесь конечно нужны навыки программиста 1С, просто флажками такие переносы не сделать…

    3. Сопоставление объектов происходит по умоланию по коду (или наименованию при отсутствии кода) , по номеру и дате документа. Так же в настройках загрузки можно указать конкретный реквизит для сопоставления:

    [НайтиПоРеквизиту]

    Справочник.Номенклатура.Артикул

    еще возможно указать при выгрузке «Выгружать уникальный идентификатор объектов», тогда сопоставление при загрузке будет происходить по нему. Но это больше подходит для копий баз, когда надо догрузить данные из одной копии базы в другую.

    Reply
  91. moolex

    (89) MyPuK_OLD, забыл написать:

    при включенном флаге «Выгружать уникальный идентификатор объектов», можно для некоторых видов объектов убрать выгрузку уникального идентификатора, для этого надо в правилах выгрузки добавить:

    [ИсключаемыеСвойства]

    Справочник.Банки.УникальныйИдентификатор1С

    Reply
  92. Vyacheslav56

    Есть две базы, необходимо перебросить документы между ними, при переносе обработка создает заново элемент в справочнике организации, Наименование полное, сокращенное, ИНН, КПП скопировал из одной в другую, обработка все равно создает новый элемент, как сделать, чтобы не создавала,а сопоставила их.

    Reply
  93. moolex

    (92) Vyacheslav56,

    Перед загрузкой обработка ищет и сопоставляет объект по коду (если он есть и уникален), код должен быть одинаковый и в источнике и в получателе.

    Или чтобы организации сопоставлялись например по ИНН в правилах загрузки можно прописать:

    [НайтиПоРеквизиту]

    Справочник.Организации.ИНН

    а в правилах выгрузки код не выгружать:

    [ИсключаемыеСвойства]

    Справочник.Организации.Код

    Reply
  94. Evgeny-st

    При попытке открыть обработку в Управление небольшой фирмой, редакция 1.6 (1.6.8.28), выдает ошибка «Невозможно подключить дополнительную обработку из файла.

    Возможно, она не подходит для этой версии программы.»

    А в описании указано, что подходит для любой.

    Reply
  95. Evgeny-st

    Извините, разобрался. При первом запуске разрешил программе установить запрет на создание и открытие внешних отчетов и обработок. Когда снял запрет, все открылось и перенеслось. Кстати, для снятия запрета вот ссылка: http://helpme1c.ru/kak-razreshit-interaktivnoe-otkrytie-vneshnix-otchetov-i-obrabotok-dlya-1sbuxgalteriya-8-3-redakciya-3-0

    Reply
  96. BackHand001

    (6)

    &НаКлиенте
    Процедура КакаяТоПроцедураОбработкиДанных(МассивДанных)
    // Делим массив на 100 порций
    Порция = Цел(МассивДанных.Количество / 100);
    
    Для СчПорций = 1 По 101 Цикл
    ПроцедураОбработкиПорцииДанныхНаСервере(СчПорций,Порция,МассивДанных);
    
    // А вот вывод прогресса
    Состояние(«Процесс Обработки Данных», СчПорций,»Выполнено %»);
    
    КонецЦикла;
    
    &НаСервереБезКонтекста
    Процедура ПроцедураОбработкиПорцииДанныхНаСервере(СчПорций,Порция,МассивДанных)
    
    Для ИндМассива = СчПорций*Порция  По (СчПорций+1)*Порция Цикл
    ЭлементМассива = Массив[ИндМассива];
    //Обрабатываем ……
    // Еще Обрабатываем )))
    // Совсем Обработали.
    
    КонецЦикла;
    
    КонецПроцедуры

    Показать

    Reply
  97. vdmkvrshn

    (23) > жаль что пока в 1C нет что-то типа «Новый ЧтениеДвоичныхДанных()»

    Смотрите в сторону ЗаписьFastInfoset, ЧтениеFastInfoset

    Reply
  98. moolex

    не здесь оставил заметку

    Reply
  99. dimaster

    (157)

    подскажите, плз, можно ли сделать такое

    выгрузка из УТ10

    загрузка в операцию

    Расходный кассовый ордер инкассо

    в БП3 просто операция Д57 К50

    ?

    выгрузка —

    включать правила выгрузки

    ———————————————-

    [ИсключаемыеСвойства]

    [ПодменаИмен]

    [ИсключаемыеОбъекты]

    [ДополнительныйЗапрос]

    ВЫБРАТЬ

    РасходныйКассовыйОрдер.Номер,

    РасходныйКассовыйОрдер.Дата,

    РасходныйКассовыйОрдер.Проведен,

    РасходныйКассовыйОрдер.Касса.ТорговыйОбъект.Наименование КАК Касса,

    РасходныйКассовыйОрдер.СтатьяДвиженияДенежныхСредств КАК Статья,

    РасходныйКассовыйОрдер.Ссылка КАК Ссылка,

    РасходныйКассовыйОрдер.СуммаДокумента КАК Сумма

    ИЗ

    Документ.РасходныйКассовыйОрдер КАК РасходныйКассовыйОрдер

    ГДЕ

    (РасходныйКассовыйОрдер.СтатьяДвиженияДенежныхСредств = ЗНАЧЕНИЕ(Справочник.СтатьиДвиженияДенежныхСредств.Инкассация)И

    (РасходныйКассовыйОрдер.Дата МЕЖДУ &НачДатаВыгрузки И &КонДатаВыгрузки))

    [ОграничитьПоКоличеству]

    [ПрефиксСвойств]

    [ОбщийРодитель]

    [ПодставитьДатуВместоПустой]

    —————————————————————————-

    или, может, быть, есть фильтры — другой отбор выгружаемых данных.

    правильно ли выгружаю и как грузить в операцию?

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *