Универсальный OLE-перенос объектов между БД с идентичными конфигурациями

12.01.12

Интеграция - Обмен между базами 1C

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

Скачать файлы

Наименование Файл Версия Размер
perenos_ole_136.zip
.zip 29,03Kb
777
.zip 29,03Kb 777 Скачать


Обработка способна переносить любые объекты, но данный пример сделан в виде переноса всех документов за определенный период. Если потребуется, то доработать интерфейс отбора объектов не составит особого труда.

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

Выгружаемые документы проводятся в конце выгрузки, если установлен соответствующий флаг, в естественном временном порядке.

Поддерживается целостность выгрузки данных с учетом возможной сетевой структуры ссылок, т.е когда "ЭЛЕМЕНТ_1" через реквизиты ссылается на "ЭЛЕМЕНТ_2", а "ЭЛЕМЕНТ_2" - на "ЭЛЕМЕНТ_1".
В том числе, и более сложные и длинные сетевые структуры.

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

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

Вся схема переноса сводится к настройке основных параметров переноса и указанию ключей синхронизации у справочников. Схема может сохраняться в файле.

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

Это просто удобная заготовка для создания обработок переноса данных под конкретных клиентов.

Рекомендуемые доработки при доводке "под ключ":

  1. Можно, передавая в форму в качестве параметра схему переноса и другие настройки, скрыть от пользователя лишнюю информацию, автоматизировать процесс переноса данных под конкретного клиента.
  2. На отбор объектов можно "повесить" вызов некой обработки (отчета), позволяющей гибко производить отбор объектов по различным параметрам, в зависимости от пожеланий клиента. Выбранные объекты передавать в обработку переноса через параметры.

При разработке обработки акцент делался на простоту и удобство использования, экономию времени в будущем на реализации типовых задач: перенос "черное / белое", перенос справочников в новую чистую БД и т. д. и т. п..


ОСНОВНЫЕ НАСТРОЙКИ:

  • [ Трассировочные сообщения ] - выводить при переносе информацию о переносимых объектах
  • [ Проводить документы ] - проводить документы после переноса, проводятся в конце все сразу в естественной временной последовательности
  • [ Замещать при загрузке документы и справочники ] - производить обновление реквизитов уже существующих, найденных в БД-приемнике объектов

ДЕЙСТВИЯ:

  • [ Загрузить структуру ] - загрузить структуру БД (для формирования файла со схемой переноса)
  • [ Сохранить схему переноса ] - сохранить схему переноса в файл
  • [ Загрузить схему переноса ] - загрузить схему переноса из файла

РЕЛИЗ 1.25
Замечание от NDeclin:
"Пустые значения реквизитов типа "дата" переносятся как 30-12-1899."
Исправлено.

РЕЛИЗ 1.24
Замечание от Dmitry100:
"Если в приемнике уже есть документ и он помечен на удаление, а в источнике
этот документ проведен, то в приемнике он перезаполняется, но пометка
на удаление не снимается. А было бы логично."
Реализовано.

РЕЛИЗ 1.23
Исправлена ошибка при выгрузке реквизитов неопределенного типа со значением типа "перечисление".

РЕЛИЗ 1.22
Доработана выгрузка реквизитов неопределенного типа.

РЕЛИЗ 1.21
Исправлена ошибка при переносе операций.

РЕЛИЗ 1.20
Доработан интерфейс для "пользователя".

РЕЛИЗ 1.11
Исправлена ошибка, возникавшая при выгрузке документов, не имеющих табличной части.

РЕЛИЗ 1.10
Добавлена обработка передаваемых при открытии параметров.

СПИСОК ВОЗМОЖНЫХ ПАРАМЕТРОВ:

  • [ СхемаПереноса ] - файл со схемой переноса
  • [ ЗамещатьЭлементыСправочников ] - соответствующий флаг
  • [ ЗамещатьДокументы ] - соответствующий флаг
  • [ ТрассировочныеСообщения ] - соответствующий флаг
  • [ ПроводитьДокументы ] - соответствующий флаг
  • [ Путь ] - путь к БД-приемнику
  • [ ПользовательДиалог ] - параметр для подключения к БД-приемнику
  • [ Пароль ] - параметр для подключения к БД-приемнику
  • [ ВыгружаемыеОбъекты ] - список объектов (список значений), которые надо выгрузить в БД-приемник
  • [ Действие ] - действие, которое необходимо выполнить

ВОЗМОЖНЫЕ ЗНАЧЕНИЯ ПАРАМЕТРА "ДЕЙСТВИЕ":

"" - при любом значении, в том числе и при пустом значении, происходит инициализация флагов и полей ввода, соответствующих переданным параметрам, в случае пустого значения происходит обычное открытие формы обработки

"подключить_приемник" - происходит подключение БД-приемника, форма обработки открывается

"загрузить_структуру" - происходит подключение БД-приемника и загрузка структуры БД, форма обработки открывается

"загрузить_схему" - происходит загрузка схемы обмена, форма обработки открывается

"загрузить_схему_подключить_приемник" - происходит подключение БД-приемника, загрузка схемы обмена, форма обработки открывается

"выгрузить_объекты" - происходит подключение БД-приемника, загрузка схемы обмена, выгрузка переданных объектов, форма обработки не открывается


ПРИМЕР ИСПОЛЬЗОВАНИЯ ОБРАБОТКИ

  1. Открыть обработку в БД-источнике.
  2. Перейти на закладку "Настройка", загрузить структуру данных, отредактировать схему переноса
    (указать ключи синхронизации у справочников), сохранить схему в файл, чтобы в дальнейшем просто загружать ее из файла.
  3. Вернуться на основную закладку, указать: параметры конфигурации приемника (каталог, пользователь, пароль), подключить конфигурацию приемник.
  4. Отобрать объекты для выгрузки.
  5. Выгрузить данные.

См. также

SALE! 10%

Перенос данных из 1С:Бухгалтерия 7.7 в БП 3.0

Файловый обмен (TXT, XML, DBF), FTP Обмен между базами 1C Платформа 1С v7.7 Платформа 1С v8.3 1С:Бухгалтерия 7.7 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Переход с 1С:Бухгалтерии 7.7 на 1С:Бухгалтерию предприятия 8, редакция 3.0, через стандартную обработку является сложным процессом, требующим определенной подготовки. Во время выполнения этого перехода возникает множество проблем и ошибок (примеры ошибок ниже), которые могут затруднить его успешное выполнение. В разработке учтены и исправлены все ошибки.

50722 45650 руб.

26.05.2020    33853    10    66    

16

Конфигурация "Информационный киоск". Обработки выгрузки товаров для ТиС 9.2, УТ 10.3, УТ 11 (обмен данными с любой конфигурацией 1С 7.7, 8.х)

Оптовая торговля Розничная торговля Обмен между базами 1C Сканер штрих-кода Платформа 1С v7.7 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv7 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Управленческий учет Платные (руб)

Конфигурация предназначена для организации offline доступа клиента (покупателя) к информации о товарах, услугах или дисконтных картах посредством сканирования штрих-кода. Основная цель – мгновенно предоставить наиболее актуальную информацию о цене, остатках, наименовании товара (услуги) или накоплениях, держателе, состоянии дисконтной карты.

1800 руб.

21.12.2014    59209    8    21    

20

Выгрузка данных из 1С 7.7. в формате EnterpriseData 1.6 (универсальный формат обмена) в конфигурации 8.3

Обмен между базами 1C Платформа 1С v7.7 Платформа 1С v8.3 1С:Торговля и склад 7.7 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Обработка позволяет выгружать данные из ТиС 7.7 в конфигурации 8.3 для сдачи отчетности, для переноса данных при переходе на 8.3, для организации обмена внутри компании при использовании разных версий 1С в структурных подразделениях или формирования отгрузочных накладных для клиентов.

6000 руб.

18.05.2020    22658    59    39    

35

Выгрузка из 1С ТиС 9.2 в 1С БП 3.0 с дополнительными фильтрами по Фирме, Складу, Контрагенту, Проекту, Автору и Юрлицу

Файловый обмен (TXT, XML, DBF), FTP Обмен между базами 1C Платформа 1С v8.3 Оперативный учет 7.7 1С:Торговля и склад 7.7 1С:Бухгалтерия 3.0 Бухгалтерский учет Управленческий учет Абонемент ($m)

Обработка и правила обмена данными для выгрузки документов и всех связанных с ними справочников из 1С7.7 ТиС 9.2 в 1С8.3 БП 3.0 через файл XML. В типовых конфигурациях уже есть такое решение. Это немного доработанные правила и сама обработка выгрузки, добавлена возможность устанавливать отбор по выгружаемым документам по Фирме, Контрагенту, Складу, Проекту, Автору, ЮрЛицу. А также это внешняя обработка, что даёт возможность адаптировать её под нетиповую ТиС. Обработка и правила тестировались на платформах: 1С: Предприятие 7.7 и 1С: Предприятие 8.3.18.1334. На типовых конфигурациях: «Торговля + склад», редакция 9.2 (7.70 1004) и «Бухгалтерия предприятия» редакция 3.0 (3.0.96.30).

1 стартмани

13.08.2021    8329    52    Kuzya_brаtsk    8    

11

Переход с 1С:Комплексной 7.7 на 1С:УТ 10.3

Обмен между базами 1C Платформа 1С v7.7 Платформа 1С v8.3 Платформа 1C v8.2 1С:Управление торговлей 10 1С:Комплексная 7.7 Россия Управленческий учет Платные (руб)

Начните вести учет в УТ 10.3! Перенесите все свои данные в УТ 10.3 в любом месяце года и продолжите вести учет! Программа перенесёт любое количество баз с документами и остатками в больших количествах. Обработка выгрузки выполнит проверку исходных данных и сформирует отчет о найденных ошибках в справочниках и документах. Партии переносятся с себестоимостью. Штрихкоды номенклатуры загружаются. Цена переносится. Автор консультирует.

8400 руб.

17.03.2021    15526    5    13    

6

Обмен данными ЗУП 3.1 - Бухгалтерия 7.7

Зарплата Обмен между базами 1C Бухгалтерский учет 7.7 Сложные периодические расчеты 1С:Бухгалтерия 7.7 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Как известно, Бухгалтерия 7.7 не имеет штатной возможности для обмена с ЗУП 3.1. Данная разработка пригодится тем, кто перешел с ЗиК 2.3 на ЗУП 3.1, но вынужден по каким-то своим причинам оставаться на Бухгалтерии 7.7.

18000 руб.

29.09.2020    13575    2    0    

5

Конвертация данных из 1С 8.3 в 7.7 (версия КД 2.1). Перенос данных из 8.3 в 7.7. Создание в современной 1С 8.3 XML в формате КД2. Инструкции и примеры переноса данных из любой современной 1С 8.3 в устаревшую конфигурацию 1С 7.7, через Конвертацию данных 2

Обмен между базами 1C Платформа 1С v7.7 Платформа 1С v8.3 1С:Конвертация данных Бесплатно (free)

При переходе на новую версию 1С в период параллельной эксплуатации может возникнуть необходимость обратной конвертации данных (по правилам КД версии 2.1) из 1С:Предприятие 8.3 в 1С:Предприятие 7.7 для переноса данных из 1С:Предприятие 8.3 в 7.7. Сделать это поможет следующая инструкция по КД2 о том, как создать новую конвертацию из 8.3 в 7.7, сохранить модуль и правила загрузки данных, сделать загрузку данных. КД2.

17.10.2019    13971    ksnik    0    

15

Загрузка адресов произвольного формата (КЛАДР и нестандартных "грязных" адресов) в ФИАС современных конфигураций из 1С 7.7

Загрузка и выгрузка в Excel Обмен между базами 1C Платформа 1С v7.7 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv7 1С:ERP Управление предприятием 2 Абонемент ($m)

Описание технологии загрузки любых адресов из 1С 7.7 с разложением по ФИАС в современные конфигурации 1C 8.3 на примере ERP. Предлагаемый способ просто чудо, он гарантирует результат, он очень простой и качественный! Моя обработка является синтаксическим анализатором, который подставляет в строку грязного адреса выражение "Дом №" и "Корпус", благодаря чему грязные адреса 7.7 сами очень хорошо раскладываются по значимым полям ФИАС - заполняется область, город, улица, дом, корпус.. все раскладывается само с помощью встроенного механизма современных конфигураций 1С 8.3, который написали сами сотрудники фирмы 1С!

1 стартмани

16.08.2019    19255    17    ksnik    12    

8
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. wolfsoft 2421 29.07.07 19:59 Сейчас в теме
В ответ на претензии по "тормозной" работе http://infostart.ru/projects/181/ выкладываю данную разработку.
Она работает быстрее, так как не содержит "тормозов" системных методов "1С" ЗначениеВСтрокуВнутр() и ЗначениеИзСтрокиВнутр().
Пожалуйста, комментарии, отзывы, ошибки - сюда, милости просим ;)
2. wolfsoft 2421 31.07.07 09:56 Сейчас в теме
Не понял, все так плохо, что даже комментировать не хочется? ;)
3. wolfsoft 2421 08.08.07 23:40 Сейчас в теме
Тогда закрываю обработку, теперь "только для зарегистрированных".
4. kosty 11.08.07 11:58 Сейчас в теме
работает шустренько, спасибо
был бы не лишний отбор по виду документа
5. wolfsoft 2421 12.08.07 09:50 Сейчас в теме
2 kosty: Спасибо за комментарий. В общем-то обработка может переносить любые объекты, предназначена скорее другим программистам, чем пользователям, как "заготовка" для своих обработок. Перенос документов - просто пример.
Но вообще Вы правы, надо подумать и о пользователях.
Доработаю интерфейс - выложу обновленную версию.
6. wolfsoft 2421 12.08.07 10:46 Сейчас в теме
2 kosty: По просьбам трудящихся доработан интерфейс для пользователя ;)
Добавлен отбор документов и элементов справочников по виду и отбор "по-штучно".
7. wolfsoft 2421 12.08.07 10:47 Сейчас в теме
8. wolfsoft 2421 14.08.07 18:24 Сейчас в теме
Не стесняемся, Дамы и Господа! Пишем комментарии, "плюсуем" :)
9. wolfsoft 2421 14.08.07 18:25 Сейчас в теме
А вот зайца кому? Кому зайца? (с) м/ф "Падал прошлогодний снег"
10. Vadik 16.08.07 16:08 Сейчас в теме
вот пытаюсь выгрузить операции которые добавил в список, т.е. не все, а определнные и у меня вываливается сообщение
ОбъектПриемник = База.CreateObject("Счет." + Объект.ПланСчетов().Идентификатор());
{C:\DOWNLOADS\BUH\BUX\OBRABOTKI\ПЕРЕНОС\ПЕРЕНОС ОБЪЕКТОВ 1.20 (OLE).ERT(280)}: 1С:Предприятие: Неудачная попытка создания объекта (Счет.): 0

хотя конфы идентичны, просто данные в них разные
11. wolfsoft 2421 16.08.07 22:00 Сейчас в теме
(10) Большое спасибо за сообщенную ошибку.
Исправлена ошибка при выгрузке операций.
Скачайте свежий релиз 1.21
http://infostart.ru/projects/1120/download.php?file=1621
12. Vadik 17.08.07 15:59 Сейчас в теме
странно... но вот даже после того как скачал новую версию у меня вываливается тоже самое сообщение...
ОбъектПриемник = База.CreateObject("Счет." + Объект.ПланСчетов().Идентификатор());
{C:\DOWNLOADS\BUH\BUX\OBRABOTKI\ПЕРЕНОС\ПЕРЕНОС ОБЪЕКТОВ 1.20 (OLE).ERT(280)}: 1С:Предприятие: Неудачная попытка создания объекта (Счет.): 0
13. wolfsoft 2421 17.08.07 16:12 Сейчас в теме
(12) "ПЕРЕНОС ОБЪЕКТОВ 1.20 (OLE).ERT" - это старая версия обработки
используйте "ПЕРЕНОС ОБЪЕКТОВ 1.21 (OLE).ERT" ;)
14. wolfsoft 2421 17.08.07 16:34 Сейчас в теме
Виноват, приношу свои извинения Vadik и тем, кто успел скачать версию 1.21.
По ошибке в архиве оказалась старая версия 1.20 :(
Обновил снова файл с версией 1.21.
15. maos 20.08.07 16:32 Сейчас в теме
Спасибо большое! Долго искал. Перепробовал кучу аналогов. У всех свои недостатки. Эта очень понравилась и позволила решить проблему переноса документов
16. wolfsoft 2421 20.08.07 23:21 Сейчас в теме
(15) Вам спасибо за комментарий :)
17. Vadik 21.08.07 07:39 Сейчас в теме
Благодарю, обработка очень выручила!!!
18. avega 103 22.08.07 10:29 Сейчас в теме
жаль только что если народ работал и в источнике и приемнике то документы ЗАМЕЩАЮТСЯ :(
19. wolfsoft 2421 22.08.07 10:35 Сейчас в теме
(18) Ну так перенос, он на то и перенос, а не обмен, это ж не УРИБД :)
Это разные задачи.
Ситуация, когда одни и те же документы изменяются двумя людьми одновременно в разных местах, это в принципе не правильная постановка учета, ибо один из них по-любому делает ненужную работу, т.е. попусту тратит свое время, ИМХО :)
20. LordOfChaos 30.08.07 09:10 Сейчас в теме
Спасибо огромное! Надо было срочно и чудо случилось. Мир не без добрых людей, способных вот так запросто поделиться собственными наработками.
21. wolfsoft 2421 30.08.07 09:21 Сейчас в теме
(20) Рад, что помог, спасибо за комментарий :)
22. JannyFan31 05.09.07 08:22 Сейчас в теме
Спасибо, очень многому можно научиться, используя такие вещи.
23. Кос 06.09.07 12:33 Сейчас в теме
Перепробовал уйму обработок - эта самая лучшая и что, пожалуй, самое важное - безошибочная.
Огромное спасибо!
24. Diman23 15.09.07 17:06 Сейчас в теме
На релизе 1.21 работает все кроме:

ОбъектПриемник.Родитель = РодительОбъекта;
{D:\INSTALL\1C_TREE_77\.ВНЕШНИЕ ОТЧЕТЫ И ОБРАБОТКИ\INFOSTART\PERENOS_OLE_121\121\ПЕРЕНОС ОБЪЕКТОВ 1.21 (OLE).ERT(440)}: 1С:Предприятие: Неверное значение!

Просим поправить! В целом же реализация вполне годится.
25. wolfsoft 2421 15.09.07 17:59 Сейчас в теме
(24) Данной информации недостаточно для определения ошибки.
На типовой ТиС выгрузка многоуровневых справочников проходит нормально, ошибку смоделировать не удалось.
26. wolfsoft 2421 15.09.07 18:39 Сейчас в теме
+(25) Попробуйте перебросить данные вот этой обработкой Serjant-а
http://infostart.ru/projects/156/
Если не трудно, сообщите о результатах.
27. mihenius 83 26.09.07 08:20 Сейчас в теме
ОбъектПриемник.Родитель = РодительОбъекта;
{ПЕРЕНОС ОБЪЕКТОВ 1.21 (OLE).ERT(460)}: 1С:Предприятие: Неверное значение!

Такая же ошибка
28. mihenius 83 26.09.07 09:45 Сейчас в теме
ТиС 937 глючит на номенклатуре (уровней 5)
29. mihenius 83 26.09.07 11:12 Сейчас в теме
http://www.abelov.com/forum/f.php?ak=31356
Вот кстати аналогичная проблема и ее решение ... т.е. нужно завести еще одну перменную
32. wolfsoft 2421 26.09.07 22:27 Сейчас в теме
(27-31) В монопольном режиме никаких подобных ошибок мной не наблюдается. Судя по ссылке, которую Вы дали в посте (29), эти ошибки возникают у Вас при попытке переноса в "не монопольном" режиме работы?
Если да, попробуйте осуществлять перенос в монопольном режиме, ошибки остаются?
34. mihenius 83 28.09.07 11:36 Сейчас в теме
В (29) я просто пробовал решить проблему сам и поискал в яндексе подобную ошибку.
Нашел ссылку, кинул вам.
Вставил в место ошибки попытку исключение
Глючит на некоторых новых товарах, кот. еще нет в базе приемнике
Проверял на дублеж товаров, дублирующих кодов не нашел
100. Abadonna 3958 07.04.08 10:27 Сейчас в теме
Антоха, блин...
Процедура СоздатьПриемник()
Путь=Симв(34)+Путь+Симв(34); // обязательно надо!!!!
// иначе при наличии пробела в пути не стартует
;)
101. wolfsoft 2421 07.04.08 13:45 Сейчас в теме
(100) Аркадий, блин :)
Все комменты - на сайте разработчика в разделе "Обратная связь"
http://www.1partner.nnov.ru/forum/index.php?fid=3
:)
ЗЫ: Добавлю, обновлю, но позже, вечерком.
30. mihenius 83 26.09.07 15:19 Сейчас в теме
Еще бы лучше Сообщить не использовать или чистить Окно Сообщений
А информацию скидывать в лог файл
дело в том что 1с-ка копит память ... а потом ругается что памяти не хватает ...
31. mihenius 83 26.09.07 16:07 Сейчас в теме
Еще ошибка ...
ОбъектПриемник.Новый();
{ПЕРЕНОС ОБЪЕКТОВ 1.21 (OLE).ERT(432)}: 1С:Предприятие: Неверный владелец.
33. mihenius 83 28.09.07 11:31 Сейчас в теме
Делалось все монопольно ... почему то владелец объекта не перепозиционировался.
Подумал, может его в базе приемнике нет ... смотрю есть.
Еще не понравилось снятие документов с проведения по ссылкам в предыдущем периоде ...
Дело в том, что часть этих доков может не провестись ... и полетят остатки
может сделать параметр не снимать с проведения документы с датой раньше периода переноса
35. mihenius 83 28.09.07 12:21 Сейчас в теме
И все таки все работает нормально )
Это у нас дубль нашел у группы и элемента один код ... как такое могло случиться ...
А я на дубли проверял только сами элементы
Прога пыталась подставить в качестве родителя элемент )))))))))
Короче нужно на всякий сделать проверку чтоб родитель был папкой!
А так все обработка супер ставлю +
36. mihenius 83 28.09.07 12:49 Сейчас в теме
Вообщем стоит с параметром добавить примерно следуещее
Код
Ном = СоздатьОбъект("Справочник.Номенклатура");
Ном.ПорядокКодов();
Тек = 0;
ТекИмя = 0;
Ном.ВыбратьЭлементы(0);
Пока Ном.ПолучитьЭлемент() = 1 Цикл
    Если Тек <> Ном.Код Тогда
        Тек = Ном.Код;
   ТекИмя = Ном.Наименование;
    Иначе
   Сообщить("Дублирование кода товара - "+Тек+"="+ТекИмя +" = с = "+    Ном.Код+"="+Ном.Наименование);
   КонецЕсли;
КонецЦикла;
Показать полностью
37. mihenius 83 28.09.07 16:10 Сейчас в теме
Обработка универсальная
поэтому беру свои слова обратно (36)
Но в документации следует на всякий случай предупредить о проблемах, если будут дубли по ключам в справочниках/документах
А проверять каждый должен сам )
38. wolfsoft 2421 28.09.07 22:32 Сейчас в теме
2 Mihenius:Спасибо за комментарии.
Честно говоря, никак не учитывал, что возможны ситуации дублей ключей синхронизации :)
В описании немного намекается на уникальность ключа синхронизации в следующем абзаце:
Также есть возможность выбора ключа синхронизации. Если у справочника нет атрибута "Код" (код нулевой длины), то, как вариант, можно для прозрачности переноса, добавить к структуре справочника реквизит "Уникальный код" и указать его в схеме переноса в качестве ключа синхронизации.
Прямым текстом действительно не написано, но в принципе это подразумевалось :)
Вообще, большое спасибо, что не бросили и разобрались в проблеме до конца.
По поводу параметра "не снимать с проведения документы с датой раньше периода переноса" - не знаю, сложно сказать. При желании добавить его не трудно, но на сколько это правильно и как определить документы, которые надо перепровести, а которые не надо? Пока наверное воздержусь от добавления, надо еще подумать (может быть каждому виду документа сделать отдельную галку...). Но проблема понятна - спасибо, будем думать :)
40. mihenius 83 01.10.07 09:50 Сейчас в теме
(38) Документы то перепроводить нужно, на счет этого я не спорю
Но снимать с проведения нужно только в том периоде, кот. переносим
Т.е. делаем 2 ТЗ с доками кот. нужно перепровести
У нас просто УРиБ и в разных базах под справочники выделены свои диапазоны кодов, а вот блин почему то группа проскочила через ограничитель ...
Поэтому не хватает ЛОГА ОШИБОК для вашей обработки. В других обработках случаи с дубликатами рассматриваются ;) , но нет ссылочного переноса
41. wolfsoft 2421 01.10.07 10:14 Сейчас в теме
(40) Будем думать и искать свободное время для доработки :)
39. rka 8 01.10.07 09:31 Сейчас в теме
При переносе документов из Комплексной в Комплексную в Приемнике документы вида Поступление (ОС, НМА, услуг), ВозвратПокупателю не проводяться, хотя все переноситься и пишет что все проведено.
42. rka 8 01.10.07 16:24 Сейчас в теме
Может это только у меня...
Комплексная, при переносе документов ПоступлениеПрочее (Поступление ОС,НМА) в табличной части не заполняются данные о счете.
Видимо это потому что в документе у данных полей Тип = Неопределенный. И нужное значение рекизиту не присваивается. Нужно сначала назначить тип рекизиту, а затем уже присваивать ему значение...
Я не прав?
43. wolfsoft 2421 01.10.07 21:28 Сейчас в теме
(42) Спасибо за сообщение. Да, Вы совершенно правильно указали причину.
Будет добавлено в следующей версии.
44. wolfsoft 2421 01.10.07 22:48 Сейчас в теме
(42) Пожалуйста, попробуйте версию 1.22 и сообщите о результатах.
Времени не хватает для полноценного тестирования.
45. rka 8 02.10.07 09:10 Сейчас в теме
Обработка очень понравилась!!!
Причем из огромного количества аналогов, единственная которая работает!!! Огромное спасибо!

При переносе из Комплексной возникают следующие проблемы. У некоторых документов (ПоступлениеПрочее, СписаниеТМЦ, ОприходываниеТМЦ), есть поля у которых тип Неопределенный. (Счет, субконто1, субконто2 и т.д.). Следовательно нужно смотреть, если в Источнике есть значение, то аналогичный тип присваивать Приемнику.

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

В общем и целом. Все супер буквально летает. Тип я сам подправил. Еще в принципе предусмотрел выгрузку таблицы проведенных в Источнике документов. Потом сравнивал с тем что проведено в Приемнике. Так проще выявлять проблемные. Но в целом все равно 5 баллов. И главное она работает!!! Сейчас гляну 1.22.
46. wolfsoft 2421 02.10.07 13:50 Сейчас в теме
(45) Ага, спасибо. Сейчас глянул по возвратам, это глюк с заполнением реквизита табличной части "ВидСтатус". Сейчас подправлю, выложу следущий билд :)
47. wolfsoft 2421 02.10.07 14:05 Сейчас в теме
48. mdzen 238 06.10.07 12:52 Сейчас в теме
Пожалуй самая простая и в тоже время "неглючная" обработка переноса из множества опробованных. Очень помогает переносить изменения в тестовую базу, когда надо базу тестить или свернуть, а юзеры в тоже время на рабочей базе документы бьют. Однако +1 ( можно и +10). Спасибо автору.
49. malutin 09.10.07 07:51 Сейчас в теме
Процедура отличная, единственная проблема, не смог перекинуть справочник цены в ТиЗ, пробовал всякими способами, и в документах, и через справочник номенклатура, и ключи менял...
50. wolfsoft 2421 09.10.07 09:33 Сейчас в теме
(49) Дело в том, что нет ссылок на эти элементы справочника "Цены номенклатуры". Самый простой способ решения - дописать процедуру отбора элементов для справочников, подчиненных другим справочникам.
После этого отобрать все элементы справочника "Цены номенклатуры" и выгрузить их (по ключу "Тип цен").
51. malutin 09.10.07 14:19 Сейчас в теме
52. rka 8 16.10.07 13:10 Сейчас в теме
Комплексная при переносе Контрагентов, Договоров. Иногда возникает ситуация что движение по регистрам делается по одному контрагенту, а бух. итоги по другому. Связано это с тем (как я думаю), что движения формируются по договору, а проводки по контрагенту.
Не плохо было бы при переносе контрагентов и договоров в документах проверять владельца Договора.
53. wolfsoft 2421 16.10.07 20:47 Сейчас в теме
(52) >Комплексная при переносе Контрагентов, Договоров. Иногда возникает ситуация что движение по регистрам делается по одному контрагенту, а бух. итоги по другому.

Какое это имеет отношение к универсальному переносу? Перенос движениями не занимается, он переносит объекты (справочники, документы и т.д.). Как эти объекты себя ведут (в том числе и при проведении) - это вопрос к конфигурации.
54. ash2015 31 17.10.07 00:04 Сейчас в теме
55. wolfsoft 2421 17.10.07 09:00 Сейчас в теме
И ТЕБЕ БХРАТ СПАСИБО :) А где плюсик?!! ;)
56. avolk 29.10.07 14:24 Сейчас в теме
ВЕСЧ!!!!!!!!!!! СПАСИБО!!!!!!!
Из пожеланий - не плохо бы было добавить проверку на идентичность реквизитов, я понимаю что в заголовкее написано для "ИДЕНТИЧНЫХ", но в жизни бывает что в одной конфе что-то поменял, а в старой(архивной) осталось все как есть, хоть это и все решается обновлением конфигурации, но всеж хотелось бы чтоб об этом было предупреждение до загрузки, а не когда уже половина документов перекинута (а механизма транзакций нет) вылетала ошибка о неверном имени(типе) реквизита
57. wolfsoft 2421 29.10.07 20:36 Сейчас в теме
(56) Хм.. Подумаю.. Но вообще, это такое маловероятное событие, все-таки переброска делается как правило между конкретными БД, БД эти меняются не так часто, а вот возни со сравнением этих двух БД из обработки.. В общем, подумаю, за коммент - спасибо :)
58. avolk 30.10.07 14:17 Сейчас в теме
Зато слово "Универсальная" большее значение примет))). Не обязательно проверять сразу всю конфу на идентичность, можно просто при установке значения реквизита в базе приемнике сделать проверку на его существование и соответствие типа, и если не существует просто его пропустить с соответствующим сообщением в лог, или вообще вставить в конструкцию "попытка...исключение" без всякой проверки, главное чтоб ошибки не выдавало и из обработки на полпути не выкидывало (как я и сделал). А вообще в идеале было бы сделать все в обратную сторону, т.е. загрузку производить из базы приемника, тогда можно было бы использовать механизм транзакций, и в случае вылета ошибки просто база откатывалась бы в исходное состояние, и не приходилось бы париться с восстановлениями из архива, да и скорость бы загрузки на порядок бы увеличилась, но это я так просто губу раскатал)))).
А ВООБЩЕ ОБРАБОТКА ОЧЕНЬ ДОБРОТНО СДЕЛАНА! Я перепробывал их кучу, но эта единственная реально и быстро без особых проблем заработала. МОЛОДЕЦ! Еще раз Спасибо огромное и человеческое)))
59. swd 02.11.07 14:25 Сейчас в теме
Огромное спасибо, только добавьте, пожалуйста, в описание, что для базы приемника требуется монопольный режим.
60. wolfsoft 2421 09.11.07 17:11 Сейчас в теме
Дамы и господа, а чего не комментируем, а только "плюсуем"? ;)
61. Dmitry100 12.11.07 19:49 Сейчас в теме
Красивая штука. Сворачивал базу на мощном компе. Сворачивалась база сутки. Потом из рабочей в свернутую пришлось докидывать наработанные документы. Перрепробовал пяток обработок. Эта обработка меня сильно выручила. БОЛЬШОЕ СПАСИБО!
62. Dmitry100 12.11.07 19:57 Сейчас в теме
Вот вроде такое заметил: если в приемнике уже есть документ и он помечен на удаление, а в источнике этот документ провенден, то в приемнике он перезаполняется, но пометка на удаление не снимается. А было бы логично. Использовал версию 123.
63. wolfsoft 2421 12.11.07 21:41 Сейчас в теме
(62) Ценное замечание. Реализовано :)
64. vlad_klg 13.11.07 10:11 Сейчас в теме
67. wolfsoft 2421 13.11.07 17:08 Сейчас в теме
65. krava_vlad 130 13.11.07 16:12 Сейчас в теме
При переносе не проводит проведеные документы (Конфигурация комплексная для Украины)
66. wolfsoft 2421 13.11.07 17:06 Сейчас в теме
(65) Хм.. А на закладке "Настройка" галочку "Проводить документы" поставили?
68. NDeclin 84 14.11.07 10:29 Сейчас в теме
Пустые значения реквизитов типа "дата" переносятся как 30-12-1899
69. wolfsoft 2421 14.11.07 21:16 Сейчас в теме
70. wolfsoft 2421 14.11.07 21:23 Сейчас в теме
+(69) Там даты в общем-то передаются из источника в приемник "как есть", видимо "УстановитьАтрибут()" так отрабатывает через ОЛЕ.
71. Abadonna 3958 14.11.07 22:12 Сейчас в теме
>Пустые значения реквизитов типа "дата" переносятся как 30-12-1899
А именно так и должны переноситься. Понятие ПустоеЗначение(Дата) придумано в 1С, на самом деле это переменная TDateTime=0, что как раз и соответствует дате "сотворения мира" 30 декабря 1899 года. Именно с этой даты во всех компах идет отсчет времени. OLE все правильное делает, надо на входе подшаманивать под 1С
72. wolfsoft 2421 14.11.07 22:54 Сейчас в теме
73. Abadonna 3958 14.11.07 23:17 Сейчас в теме
(72) Дык очень просто: дату в строку, если строка="30.12.1899" тогда НашаДата=ПолучитьПустоеЗначение("Дата");
74. wolfsoft 2421 15.11.07 08:48 Сейчас в теме
(73) Попробуем, только такое чувство, что "УстановитьАтрибут()" опять переведет пустое значение в "30.12.1899".
75. Abadonna 3958 15.11.07 09:00 Сейчас в теме
УстановитьАтрибут() тут не при чем, он как раз и устанавливает то, что приехало с ОЛЕ (30.12.1899). Ты перед установкой переведи в пустую дату, УстановитьАтрибут() и установит пустую.
76. wolfsoft 2421 15.11.07 20:08 Сейчас в теме
(75) Чувствую недопонимание, попробую пояснить:
Код
ОбъектПриемник.УстановитьАтрибут(РеквизитИдентификатор,
   Объект.ПолучитьАтрибут(РеквизитИдентификатор));
Показать полностью

Объект - это объект текущей БД-источника
ОбъектПриемник - это объект БД-приемника
УстановитьАтрибут() - это метод БД-приемника, в который передается обычная "дата" текущей БД-источника, которая и является "пустой".
77. Abadonna 3958 16.11.07 07:00 Сейчас в теме
Никакого недопонимания! Просто надо разбить твой код на 2 части:
Код
ТекАтрибут=Объект.ПолучитьАтрибут(РеквизитИдентификатор);
Если ТипЗначения(ТекАтрибут)=3 Тогда //дата
 Если Строка(ТекАтрибут)="30.12.1899" Тогда
  ТекАтрибут=ПолучитьПустоеЗначение("Дата");
 КонецЕсли;
КонецЕсли;
ОбъектПриемник.УстановитьАтрибут(РеквизитИдентификатор,ТекАтрибут);
Показать полностью
78. Abadonna 3958 16.11.07 07:11 Сейчас в теме
А ваще щас гляну твой код, а то может я не про то... :))))
79. Abadonna 3958 16.11.07 07:16 Сейчас в теме
А.. я думал ты а Приемнике запускаешь, а оказывается наоборот, в источнике... тады другое дело... бум посмотреть
80. Abadonna 3958 16.11.07 08:15 Сейчас в теме
Проверил, вот так работает правильно, добавка в коде установки реквизитов шапки доков
Код
   // устанавливаем реквизит
         ОбъектПриемник.УстановитьАтрибут(РеквизитИдентификатор,
               ОпределитьОбъект(Объект.ПолучитьАтрибут(РеквизитИдентификатор)));
         //--- добавлено АК----------------      
         УстАтрибут=ОбъектПриемник.ПолучитьАтрибут(РеквизитИдентификатор);      
         Если ТипЗначения(УстАтрибут)=3 Тогда
            Предупреждение("Дата!");
            Если УстАтрибут=Дата("30.12.1899") Тогда
               Предупреждение("Кривая");
               ОбъектПриемник.УстановитьАтрибут(РеквизитИдентификатор,ПолучитьПустоеЗначение());
            КонецЕсли;
         КонецЕсли;
         //----------------------------------------------------
Показать полностью
81. wolfsoft 2421 16.11.07 08:38 Сейчас в теме
2 Abadonna: Убедил :) Как появится время, исправлю и протестирую. Спасибо :)
82. Abadonna 3958 16.11.07 09:14 Сейчас в теме
Кстати, до этого твои коды не смотрел, понравилось, что стиль программирования один в один мой, т.е. правильный :)))))))))))))))))
83. wolfsoft 2421 16.11.07 19:56 Сейчас в теме
84. wolfsoft 2421 16.11.07 23:13 Сейчас в теме
Релиз 1.25
Замечание от NDeclin:
"Пустые значения реквизитов типа "дата" переносятся как 30-12-1899."
Исправлено.
85. wolfsoft 2421 16.11.07 23:15 Сейчас в теме
Блин, забыл упомянуть про неоценимую помощь Abadonna! :)
86. Abadonna 3958 17.11.07 01:04 Сейчас в теме
Если ПустоеЗначение(Объект) = 1 Тогда
Возврат ПолучитьПустоеЗначение();
А красиво вышло ;))))
87. wolfsoft 2421 17.11.07 07:55 Сейчас в теме
(86) Главный вывод из твоего кода - пустое значение типа "дата" передается не совсем корректно, а пустое значение неопределенного типа нормально передается. Вот и "подсунул" в нужном месте замену.
;)
88. Abadonna 3958 17.11.07 08:49 Сейчас в теме
(87) Мне просто лень было поискать, где в твоем коде оно в одном месте лежит ;)
А мысля такая же была
134. Master_Koda 17.09.12 03:47 Сейчас в теме
(86) Abadonna, Я делаю подключение к базе 77 из другой 77 для дублирования в ней объектов. База приемник не принимает пустое значение даты, хотя пытаюсь решить Вашим способом. Заполняет его 30.12.99. Вот часть кода - думаю, что достаточно. Что можете подсказать?



Если тип = "Дата" Тогда
 Если ПустоеЗначение(реквЗн) = 1 Тогда
  справочникПриемник.установитьАтрибут(идентиф,ПолучитьПустоеЗначение())
 Иначе
  справочникПриемник.установитьАтрибут(идентиф,реквЗн);
КонецЕсли;
КонецЕсли;
89. wolfsoft 2421 17.11.07 21:14 Сейчас в теме
90. Abadonna 3958 30.11.07 19:06 Сейчас в теме
Дружно поздравляем Антоху (wolfsoft): на сей секунд рейтинг ровно 1000
91. wolfsoft 2421 30.11.07 19:18 Сейчас в теме
(90) Спасибо! Правильно, поздравим дружным голосование за разработки! :))
92. Alister 9 10.12.07 19:43 Сейчас в теме
Большое спасибо за Вашу разработку ! Очень мне на днях помогла - все четко и ясно !
93. praza 12.12.07 10:00 Сейчас в теме
94. wolfsoft 2421 12.12.07 15:29 Сейчас в теме
(93) Если Вам понравилась программа, то не поленитесь, проголосуйте за нее - этим Вы доставите большую радость разработчику, приблизите его на один шаг к его мечте - обогнать по рейтингу CheBurashku ! :)))
spryn; leontiy; +2 Ответить
95. TIG-PROGRAMMIST 49 28.01.08 22:38 Сейчас в теме
А добавь туда плиз крючечек что бы можно было открывать не монопольно базу приемника.....
96. wolfsoft 2421 15.02.08 21:55 Сейчас в теме
Оставьте свое сообщение