Обработка создана для организации обмена между базами, используя Automation-сервер, с претензией на универсальность!!!
Пока это BETA-версия, которая проверялась на обмен БГУ-УТ11, БГУ-УП. Но по идее должна работать из любой конфы 8.2 и выше, неуправляемый интерфейс.
Правила работы с обработкой:
1.Теоретически запуск подключаемой конфигурации возможен начиная с платформы 8.1.
2. Обработка использует некоторые стандартные процедуры, функции и формы (в частности "ОбщаяФорма.ВыборОбъектовМетаданных" и др), но в минимальном количестве.
3. Сохранение и восстановление настроек производится с использованием "Справочники.СохраненныеНастройки" и соответственно доступны другим пользователям при предоставлении им такого права.
4. Таблицы настроек доступны пользователям с полными правами.
5. Имя пользователя удаленной базы и пароль хранятся только последние, введённые в соответствующие поля, и только для локального пользомателя.
6. Для записи соответствий используется "РегистрыСведений.СоответствиеОбъектовДляОбмена".
7. Если хотите вести обмены с множеством баз, то необходимо в конфигураторе создать План обмена "РТК_Обмен"(не обязательно), но тогда запись в "РегистрыСведений.СоответствиеОбъектовДляОбмена" будет производиться раздельной записи(будет куча соответствий не известно к какой базе(узлу) относится). Страдает визуализация.
8. Если решили вести по плану обмена "РТК_Обмен", от можно создать множество узлов для подключения. Важно чтобы имя Узла совпадало с Путем подключения к соответствующей базе.
9. Все поля являются текстовыми и следовательно можно не использовать кнопки выбора, а набивать текст в ручную.
10. Загруженные документы всегда сохраняются в "РегистрыСведений.СоответствиеОбъектовДляОбмена" с узлом = неопределено, для того чтобы видеть все загруженные документы не важно из какой они базы, а хранение соответствий справочников и перечислений осуществляется с именем узла = путю подключения к базе (если ведётся по плану обмена "РТК_Обмен") или в одной куче с документами с именем узла = неопределено (если не ведётся по плану обмена "РТК_Обмен").
11. Просмотр и создание настроек соответствий объектов баз в разрезе узла (если ведётся по плану обмена "РТК_Обмен") можно увидеть установив на вкладке "Обслуживание" флаг "Cоздание соответствий для конкретных объектов(перечислений,справочников) узела обмена".
12. Создание соответствий конкретных объектов баз производится в табличной части вкладки "Обслуживание":
Нажав "Добавить"("Скопировать"):
в поле "СобственнаяСсылка" выбераете сначала тип обекта приемника, а потом и конкретный объект базы приемника;
в поле "СсылкаВДругойИБ" выбераете сначала тип обекта источника, а потом и конкретный объект базы источника;
Так же можно заполнить соответствия "перечислений" двух баз автоматически нажав кнопку "АвтоНастройка соответствий перечислений" (заполнение производится по полному соответствию имен перечислений).
13. Создание соответствий типов объектов баз производится в табличной части "Параметры загрузки в приёмник (в эту базу)" вкладки "Настройка":
Поиск по настройке осуществляется в следующем порядке:
-значение по умолчанию;
-по соответствию ИД в "РегистрыСведений.СоответствиеОбъектовДляОбмена";
-по реквизитам из поля "1 вариант поиска";
-по реквизитам из поля "2 вариант поиска";
Нажав "Добавить"
в поле "Тип источника" выбераете сначала тип обекта источника;
в поле "Вид пиемника" выбераете сначала тип обекта приемника;
в поле "Значение по умолчанию" выбераете значение обекта приемника, если ничего не найдено и если не установлены флаги "Добавлять если не существует" и "Переписывать если существует";
флаг "Добавлять если не существует" устанавливается если хотите создать новый объект в базе приёмнике по данным реквизитов из базы источника;
флаг "Переписывать если существует" устанавливается если хотите переписывать найденный объект в базе приёмнике по данным реквизитов из базы источника;
флаг "Не искать по ИД" устанавливается если не хотите осуществлять поиск по соответствию ИД в "РегистрыСведений.СоответствиеОбъектовДляОбмена;
флаг "Всегда по умолчанию" устанавливается если хотите при любом поиске для данного типа источника устанавливалось значение из поля "Значение по умолчанию";
в поле "запрос" указывается текст запроса для выполнения перед заполнением объекта приемника. Результат можно использовать в алгоритме по имени "Результат".
в поле "алгоритм" указывается текст кода для выполнения перед записью объекта приемника. В алгоритме можно использовать вновь созданный объект по имени "Объект" и для отказа от записи "Отказ".
ПРИМЕР:
Если Объект.ЭтоНовый() Тогда
Отказ = РаботаСДиалогами.ЕстьДубльПоИНН(Объект);//использование процедур общего модуля
КонецЕсли;Нажав кнопку "Показать(скрыть) соответствия" отображается вторая таблица соответствия реквизитов обекта источика и приемника (активной строки таблицы "Параметры загрузки в приёмник (в эту базу)" )
в поле "Источник" можно указать:
имя реквизита объекта источника (например "Наименование");
имя реквизита табличной части объекта источника (например "Товары.Номенклатура");
пустое значение.
в поле "Приемник" (обязательно для заполнения) нужно указать:
имя реквизита объекта приёмника(например "Наименование");
имя реквизита табличной части объекта приёмника(например "Товары.Номенклатура");
в поле "Алгоритм" указывается текст кода для выполнения после записи реквизита из поля "Приемник". В алгоритме можно использовать для чтения и записи данные создаваемого объекта по имени "Объект" и если поле "Приемник" содержит имя реквизита табличной части объекта источника (например "Товары.Номенклатура"), то в алгоритме можно использовать для чтения и записи данные создаваемой строки, обращаясь по имени "СтрокаТаблицыПриемника". Также доступны данные для чтения объекта(ссылки) источника по имени "СсылкаУБ" и если поле "Источник" содержит имя реквизита табличной части объекта "Источника"(например "Товары.Номенклатура"), то в алгоритме можно использовать для чтения данные считываемой строки из табличной части источника, обращаясь по имени "СтрокаТЧ".
НО ДАННЫЕ ИСТОЧНИКА ЭТО "COM-объекты" И ПО ЭТОМУ ИХ ИСПОЛЬЗОВАНИЕ ТРЕБУЕТ БОЛЬШОГО ВНИМАНИЯ!!!
ТАКЖЕ ДЛЯ ПРОФИ ИМЯ "Коннект" ЭТО "COM-объект" ПОДКЛЮЧЁННОЙ БАЗЫ.
При использовании алгоритма обратите внимание когда он должен запуститься, для этого указывайте текст алгоритма в строке после заполнения которой он должен запуститься. Можно использовать в алгоритме при создании строки приёмника параметр "Отказ" с типом булево. Если указать "Отказ=истина;", то строка не запишется.
ПРИМЕР АЛГОРИТМА:
СтруктураРеквизитов = Новый Структура;
СтруктураРеквизитов.Вставить("ЕдиницаИзмерения","ЕдиницаИзмерения");
СтруктураРеквизитов.Вставить("СтавкаНДС","СтавкаНДС");
ПолучениеНСИ.ПолучитьЗначенияРеквизитовСправочника(СтрокаТаблицыПриемника.Номенклатура, СтруктураРеквизитов);
СтрокаТаблицыПриемника.ЕдиницаИзмерения = СтруктураРеквизитов.ЕдиницаИзмерения;
Если СтрокаТаблицыПриемника.КоличествоМест = 0 Тогда
СтрокаТаблицыПриемника.КоличествоМест = 1;
КонецЕсли;
Если СтрокаТаблицыПриемника.Коэффициент = 0 Тогда
СтрокаТаблицыПриемника.Коэффициент = 1;
КонецЕсли;
ОбработкаТабличныхЧастей.РассчитатьВсегоТабЧасти(СтрокаТаблицыПриемника, Объект); //обращение к общей процедуре
Объект.СуммаДокумента =Объект.СуммаДокумента + СтрокаТаблицыПриемника.всего;Если СтрокаТаблицыПриемника.всего = 0 тогда отказ=Истина; КонецЕсли;
14. Для переноса документов используется вкладка "Документы".
ОБЯЗАТЕЛЬНО в таблице "Документы источника" должны быть добавлены имена объектов (документов) например "АктПриемкиНФА" (есть в БГУ).
Флаг определяет какие виды документов будут переноситься.
Период определяет интервал дат считываемых документов (по умолчанию весь период по текущую дату).
15. Для переноса элементов справочника используется вкладка "Справочники".
ОБЯЗАТЕЛЬНО в поле "Справочник" укажите данные какого справочника источника вы хотите перенести.
В нижней таблице указавается (если необходимо) отбор (только "Код" и "Наименование"), вид сравнения и значение(тип строка);
Данный раздел пока экспериментальный!!!
16. Если все настройки сделаны, то действия пользователя просты.
Кнопка "Подключить базу", далее находясь на нужной вкладке("Документы" или "Справочники") нажать кнопку "Прочитать данные" и на соответствующей вкладке появится список (в соответствии с отбором) предлагаемых к загрузке данных. Указываете ( устанавливая, снимая) флаг в Колонке "Переносить" и далее нажав кнопку "Перенос данных (согласно настройкам)" осуществляется перенос данных.
Возможен просмотр данных источника и приёмника из табличной части нажав "лупу".
Обработка в стадии развития, есть идеи. Также жду ваши замечания и предложения!!!
Обновленная версия практически отлажена на многих типовых конфигурациях. Важные условия работы обработки указаны выше(наличие РегистрыСведений.СоответствиеОбъектовДляОбмена, РегистрыСведений.СоответствиеОбъектовДляОбмена и т.д.)