Меню

1с ошибка выполнения правил регистрации объектов для плана обмена

   s_a_r_a

18.11.20 — 09:57

Типовая бухгалтерия, без снятия с поддержки, обновили до релиза 3.0.82.40.

При проведении документа Отражение зарплаты в Бух учете выходят ошибки (До обновления все работало):

Ошибка при выполнении обработчика — ‘ПередЗаписью’

по причине:

Не удалось зарегистрировать изменения на узлах плана обмена СинхронизацияДанныхЧерезУниверсальныйФормат по причине: Ошибка выполнения правил регистрации объектов для плана обмена СинхронизацияДанныхЧерезУниверсальныйФормат.

Описание ошибки:

Ошибка при получении списка узлов получателей. Ошибка выполнения запроса: {(10, 30)}: Поле не найдено «ПланОбменаОсновнаяТаблица.ВыгружатьДанныеОРасходахФОТ»

И ПланОбменаОсновнаяТаблица.<<?>>ВыгружатьДанныеОРасходахФОТ = Истина

{ОбщийМодуль.ОбменДаннымиСобытия.Модуль(2164)}:        МассивУзловРезультат = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку(«Ссылка»);

{ОбщийМодуль.ОбменДаннымиПовтИсп.Модуль(1062)}:    Возврат ОбменДаннымиСобытия.МассивУзловПоЗначениямСвойств(ЗначенияСвойств, ТекстЗапроса, ИмяПланаОбмена, ИмяРеквизитаФлага, Выгрузка);

{ОбщийМодуль.ОбменДаннымиСобытия.Модуль(2073)}:        Возврат ОбменДаннымиПовтИсп.МассивУзловПоЗначениямСвойств(ЗначенияСвойств, ТекстЗапроса, ИмяПланаОбмена, ПРО.ИмяРеквизитаФлага, Выгрузка);

{ОбщийМодуль.ОбменДаннымиСобытия.Модуль(1897)}:    МассивУзлов = ОпределитьМассивУзловПоЗначениямСвойств(ЗначенияСвойствОбъекта, ПРО, ИмяПланаОбмена, Источник, Выгрузка);

{ОбщийМодуль.ОбменДаннымиСобытия.Модуль(1792)}:    ОпределитьМассивУзловДляОбъекта(МассивУзловРезультат, Объект, ИмяПланаОбмена, ПРО, ЭтоУдалениеОбъекта, ПроверятьСсылку, Выгрузка);

{ОбщийМодуль.ОбменДаннымиСобытия.Модуль(1833)}:    ВыполнитьПравилоРегистрацииОбъектаДляСсылочногоТипа(Получатели, ПРО, Объект, ИмяПланаОбмена, ДополнительныеПараметры);

{ОбщийМодуль.ОбменДаннымиСобытия.Модуль(1610)}:                ОпределитьПолучателейПоУсловию(МассивУзловРезультат, ПРО, Объект, ИмяПланаОбмена, ДополнительныеПараметры);

{ОбщийМодуль.ОбменДаннымиСобытия.Модуль(1514)}:        ВыполнитьПравилаРегистрацииОбъектовДляПланаОбменаПопыткаИсключение(МассивУзловРезультат, Объект, ИмяПланаОбмена, ДополнительныеПараметры);

{ОбщийМодуль.ОбменДаннымиСобытия.Модуль(1223)}:            ВыполнитьПравилаРегистрацииОбъектовДляПланаОбмена(МассивУзловРезультат, Объект, ИмяПланаОбмена, ДополнительныеПараметры);

{ОбщийМодуль.ОбменДаннымиСобытия.Модуль(32)}:    ЗарегистрироватьИзменениеОбъекта(ИмяПланаОбмена, Источник, Отказ, ДополнительныеПараметры);

{ОбщийМодуль.ОбменДаннымиСобытияБП.Модуль(145)}:    ОбменДаннымиСобытия.МеханизмРегистрацииОбъектовПередЗаписьюДокумента(«СинхронизацияДанныхЧерезУниверсальныйФормат», Источник, Отказ, РежимЗаписи, РежимПроведения);

   s_a_r_a

5 — 18.11.20 — 11:48

Вопрос решен:

Решение, может кому поможет. «Танцы с бубном».

При создании планов обмена, всегда создается запись в план обмена: «СинхронизацияДанныхЧерезУниверсальныйФормат», там было 2 записи для ЗУП и УТ, вторая была созданао как то криво. Помектила ее на удаление, потом зашла в синхринозацию, потом сняла пометку. после этого все заработало.

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

Показывать по
10
20
40
сообщений

Новая тема

Ответить

Berta50

Дата регистрации: 15.12.2011
Сообщений: 26

Прошу помощи!!! Бух корп 8.3 типовая после обновления версии 3.3.40.42 на версию 3.0.41.56 (платформы разные пробовала 3.6.2152,2237,3.7.1759,1776), выходит ошибка см приложение .В журнале регистрации выходит след.ошибка

ОбщийМодуль.ОбменДаннымиСобытия.Модуль(1213)}: Ошибка выполнения правил регистрации объектов для плана обмена АвтономнаяРабота.
Описание ошибки:
{ОбщийМодуль.ОбменДаннымиСобытия.Модуль(2429)}: Ошибка при выполнении обработчика: «После обработки»; План обмена: АвтономнаяРабота; Объект метаданных: Справочник.ДоговорыКонтрагентов
Описание ошибки: {(7)}: Метод объекта не обнаружен (ПолучитьЗначениеРеквизита)
ПредыдущаяОрганизация = ОбщегоНазначения.ПолучитьЗначениеРеквизита(Объект.Ссылка, «Организация»);
ВызватьИсключение СтрокаСообщения;
ВызватьИсключение СтрШаблон(

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

Денис (САМАРА)

Дата регистрации: 09.04.2008
Сообщений: 8351

Так-то «на дворе» уже 3.0.42.88 актуальный релиз…

Berta50

Дата регистрации: 15.12.2011
Сообщений: 26

Денис (САМАРА), Все остальные обновления дают туже ошибку ,т.е 40.42 дает вводить договора ,подразделения а следующие обновления нет,
отладчик не видит процедуры
(ПолучитьЗначениеРеквизита) «

Денис (САМАРА)

Дата регистрации: 09.04.2008
Сообщений: 8351

Berta50, значит кто-то вам поменял правила регистрации вручную. Вмешивался кто-нибудь в программу?

Berta50

Дата регистрации: 15.12.2011
Сообщений: 26

Нет правила регистрации никто не менял, с проблемой разобрались, при обновлении с релиза 39.66 на релиз 40_42 правила обмена автономная работа не обновились ,думаю что это все таки глюк обновления т к на форуме еще находила просьбы помочь с такой же проблемой.

Денис (САМАРА)

Дата регистрации: 09.04.2008
Сообщений: 8351

Berta50, значит такие «обновляльщики». Если все делать правильно, то после обновления (при первом входе в программу) автоматом запускается обработка постобновленческая, которая и заменяет все правила.

Berta50

Дата регистрации: 15.12.2011
Сообщений: 26

Денис (САМАРА), я сама и обновляла в журнале обновлений ошибок нет

Показывать по
10
20
40
сообщений

С каждым выходом новой версии платформы 1С ограничений механизма расширений становится все меньше, а возможностей все больше. Точнее сказать, что ограничений-то почти уже и не осталось:)

К сожалению, сразу начать пользоваться новыми возможностями удается не всегда. Сдерживающим фактором является свойство типовых конфигураций “Режим совместимости”. С этим столкнулся и наш слушатель.

Вопрос

Здравствуйте, имеем РИБ.

На ЦБ УТ 11.4.11.63 типовая не снятая с поддержки (с замка), добавлено два расширения с дополнением реквизитов основной конфигурации (документы, справочники, перечисления, обработки), но эти новые объекты не включены в планы обмена, как и нет в расширении плана обмена “СОтборами”. В типовом плане обмена “СОтборами” также не установлена галочка “Включать расширения конфигурации“.

В настройках расширений стоят галочки “Используется в распределенной ИБ“.

Создаем новый узел обмена с отбором (по подразделениям, организациям,складам, видам цен). При формировании начального образа возникает ошибка: “Не удалось создать начальный образ по причине: В текущем сеансе существуют изменяющие данные расширения конфигурации, неиспользуемые в распределенной информационной базе”.

“{ОбщаяФорма.СозданиеНачальногоОбразаСФайлами.Форма(392)}:        ВызватьИсключение НСтр(“ru = ‘Не удалось создать начальный образ по причине:’”) + ” ” + Результат.КраткоеПредставлениеОшибки; “

Не хочется переносить расширения конфигурации на узлы, так как они нужны только в ЦБ даже с новыми объектами и модифицированными типовыми.  И не хочется снимать с поддержки УТ. Что делать? 🙂

Ответ

Добрый день!

Да, есть такая проблема. Глобально причина в том, что типовая конфигурация отстает от новых механизмов платформы. Например, режим совместимости в УТ 11.4 используется еще только как “Версия 8.3.12”.

Свойства

Я не нашел никаких сведений о планах разработчиков установить галочку “Включать расширения конфигурации” для планов обмена. Поэтому можно рассмотреть следующие варианты:

  1. Включить возможность изменения для плана обмена (снять с замка), установить свойство “Включать расширения конфигурации”.

План обмена СОтборами

  1. Второй вариант – вместо РИБ использовать обмен по правилам, либо другую альтернативу (выгрузка в файл,  обмен через собственный веб-сервис и т.д.). Тут могут потребоваться доработки, возможно значительные.
  2. Третий вариант – перенести доработки, изменяющие структуру данных, в основную конфигурацию.

Уточнение слушателя

В итоге так и сделал. Снял с поддержки УТ. Снял с поддержки ПланОбмена.СОтборами, в нем установил галочку “Включать расширения конфигурации”, сохранил изменения. Далее сформировал узел, выгрузилось, настроил узел, на обмен всё пошло. Спасибо, будем ждать галочки в обновлениях или контролировать ее самостоятельно.

Цитата: DmitriyF от 07 сен 2020, 11:59
Попробуй правила из розницы подключить в УТ

Попробовал, и к сожалению, в УТ при отправке появилась ошибка
Ошибка при отправке данных: {ОбщийМодуль.ОбменДаннымиСобытия.Модуль(1516)}: Ошибка выполнения правил регистрации объектов для плана обмена ОбменУправлениеТорговлейРозница.
Описание ошибки:
Ошибка алгоритма вычисления значения константы:
План обмена: ОбменУправлениеТорговлейРозница
Объект метаданных: Справочник.Номенклатура
Описание ошибки: Поле объекта не обнаружено (ПодарочныйСертификат)
Алгоритм:
// {Начало алгоритма}
Значение = Перечисления.ТипыНоменклатуры.ПодарочныйСертификат;
// {Окончание алгоритма}
{ОбщийМодуль.ОбменДаннымиСобытия.Модуль(2417)}:               ВызватьИсключение СтрокаСообщения;
{ОбщийМодуль.ОбменДаннымиСобытия.Модуль(2460)}:   ПолучитьЗначенияАлгоритмовКонстант(ПРО, ПРО.ОтборПоСвойствамОбъекта);
{ОбщийМодуль.ОбменДаннымиСобытия.Модуль(1783)}:   Если  Не ПРО.ПравилоПоСвойствамОбъектаПустое
{ОбщийМодуль.ОбменДаннымиСобытия.Модуль(1833)}:   ВыполнитьПравилоРегистрацииОбъектаДляСсылочногоТипа(Получатели, ПРО, Объект, ИмяПланаОбмена, ДополнительныеПараметры);
{ОбщийМодуль.ОбменДаннымиСобытия.Модуль(1610)}:            ОпределитьПолучателейПоУсловию(МассивУзловРезультат, ПРО, Объект, ИмяПланаОбмена, ДополнительныеПараметры);
{ОбщийМодуль.ОбменДаннымиСобытия.Модуль(1514)}:      ВыполнитьПравилаРегистрацииОбъектовДляПланаОбменаПопыткаИсключение(МассивУзловРезультат, Объект, ИмяПланаОбмена, ДополнительныеПараметры);
{ОбщийМодуль.ОбменДаннымиСобытия.Модуль(2784)}:      ВыполнитьПравилаРегистрацииОбъектовДляПланаОбмена(МассивУзловДляРегистрацииОбъекта,
{ОбщийМодуль.ОбменДаннымиСобытия.Модуль(2716)}:      Если Не ДанныеСоответствуютФильтруПравилРегистрации(ЭлементДанных, Получатель) Тогда
{ОбщийМодуль.ОбменДаннымиСобытия.Модуль(338)}:      ПриОтправкеДанных(ЭлементДанных, ОтправкаЭлемента, Получатель.Ссылка, СозданиеНачальногоОбраза, Анализ);
{ОбщийМодуль.СтандартныеПодсистемыСервер.Модуль(921)}:      МодульОбменДаннымиСобытия.ПриОтправкеДанныхКорреспонденту(ЭлементДанных, ОтправкаЭлемента, СозданиеНачальногоОбраза, Получатель, Ложь);
{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(17505)}:            СтандартныеПодсистемыСервер.ПриОтправкеДанныхПодчиненному(Данные, ОтправкаЭлемента, НачальнаяВыгрузкаДанных, УзелДляОбменаОбъект);
{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(17194)}:      ВыполнитьВыгрузкуЗарегистрированныхДанных(ЗаписьСообщения, СтрокаСообщенияОбОшибке, ТаблицаПравилВыгрузкиИспользуемые);
{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(2227)}:      ВыполнитьВыгрузку();
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(7191)}:            ОбработкаОбменаДаннымиXML.ВыполнитьВыгрузкуДанных();
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(6964)}:         ЗаписатьСообщениеСИзменениямиДляУзла(СтруктураНастроекОбмена, СтруктураНастроекОбмена.ОбработкаТранспортаСообщенийОбмена.ИмяФайлаСообщенияОбмена());
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(381)}:   ВыполнитьОбменДаннымиЧерезФайловыйРесурс(СтруктураНастроекОбмена, ТолькоПараметры);
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(3891)}:         ВыполнитьДействиеОбменаДляУзлаИнформационнойБазы(Отказ, УзелИнформационнойБазы,
{Обработка.ВыполнениеОбменаДанными.МодульМенеджера(34)}:   ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазы(
{(1)}:Обработки.ВыполнениеОбменаДанными.ВыполнитьЗапускОбменаДанными(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(4883)}:   Выполнить ИмяМетода + «(» + ПараметрыСтрока + «)»;
{ОбщийМодуль.ДлительныеОперации.Модуль(1026)}:      ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(1016)}:      ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры);

{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(17634)}:      ВызватьИсключение(НСтр(«ru = ‘Ошибка при отправке данных'») + «: » + ОписаниеОшибки());
{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(17194)}:      ВыполнитьВыгрузкуЗарегистрированныхДанных(ЗаписьСообщения, СтрокаСообщенияОбОшибке, ТаблицаПравилВыгрузкиИспользуемые);
{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(2227)}:      ВыполнитьВыгрузку();
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(7191)}:            ОбработкаОбменаДаннымиXML.ВыполнитьВыгрузкуДанных();
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(6964)}:         ЗаписатьСообщениеСИзменениямиДляУзла(СтруктураНастроекОбмена, СтруктураНастроекОбмена.ОбработкаТранспортаСообщенийОбмена.ИмяФайлаСообщенияОбмена());
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(381)}:   ВыполнитьОбменДаннымиЧерезФайловыйРесурс(СтруктураНастроекОбмена, ТолькоПараметры);
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(3891)}:         ВыполнитьДействиеОбменаДляУзлаИнформационнойБазы(Отказ, УзелИнформационнойБазы,
{Обработка.ВыполнениеОбменаДанными.МодульМенеджера(34)}:   ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазы(
{(1)}:Обработки.ВыполнениеОбменаДанными.ВыполнитьЗапускОбменаДанными(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(4883)}:   Выполнить ИмяМетода + «(» + ПараметрыСтрока + «)»;
{ОбщийМодуль.ДлительныеОперации.Модуль(1026)}:      ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(1016)}:      ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры);

Здравствуйте. Сделал РИБ по Магазину в Розница 2.0. Какое-то время обмены проходили нормально, а потом вдруг на магазинной базе стала такая ошибка появляться при чтении файла обмена Ошибка чтения файла сообщения обмена: {Обработка.КонвертацияОбъектовРаспределенныхИнформационныхБаз.МодульОбъекта}: Ошибка при вызове метода контекста (ПрочитатьИзменения): Ошибка при выполнении обработчика — ‘ПередЗаписью’: {ОбщийМодуль.ОбменДаннымиСобытия.Модуль}: Ошибка выполнения правил регистрации объектов для плана обмена ПоМагазину. Описание ошибки: {ОбщийМодуль.ОбменДаннымиСобытия.Модуль(1255)}: Поле объекта не обнаружено (Дата) Покопавшись выяснил, что ошибка при попытке получения значения Дата у регистра сведений «Наборы значений доступа» и это все прописано в правилах обмена  (что бы получать дату). Пока единственный вариант вижу — в правилах обмена убрать упоминание про Дата, но это какой-то странный вариант — сначала-то все работало. С чего вдруг такая ошибка? Заранее спасибо.

может сделать ТиС, чтобы проверить на ошибки, и пустые значения?

А какая связь? ПРичем тут ошибки и пустые значения? Если у регистра нет свойства, то его и не появится. Хотя все-таки сделал, но только подтвердилось, что это не то.

Убрал в типовых правилах правило где используются «Наборы значений доступа» с фильтрацией по датам (там есть еще этот же объект и без дат) и вроде бы обмены прошли. Что за такое….

Это косяки БСП. Там есть еще обращение к РС с функцией ПолучитьСсылку

Афигенно. И ЭТО продается и предлагается ставить пользователям. Нормально так…

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

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

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

Для использования этого механизма необходимо в конфигурации наличия определенных объектов, которые доступны в наборе типовых объектов конфигурации – Обмен Данными.

И так, прежде всего вам необходимо настроить и создать правила регистрации объектов (ПРО), сделать это наиболее удобно в конфигурации «Конвертация». Более подробная и детальная схема по созданию ПРО описана в разделе справки.

Первый шаг. Создадим план обмена. Назовем его «Обмен с внешней базой», можно использовать типовой.

Создадим в нем два реквизита: Организация (Справочник.Организации) и ГраничнаяДата (Дата и время).

В регистрации свойств установим регистрацию документа и регистра сведений «Сопоставление Объектов Информационных Баз», если планируется использовать механизм «Универсального обмена данными XML».

Дополнительно в модуле плана обмена добавим функции необходимые для идентификации плана обмена — Функция ВерсияОбменаДанными() Экспорт и другие, есть в примерах.

Второй шаг. Остановимся на правилах регистрации для объекта: Документ «Реализация Товаров и Услуг».

Правила регистрации объектов для документа «Реализация товаров и услуг»

Правила регистрации объектов для документа «Реализация товаров и услуг»

Рис. 1 Правила регистрации объектов для документа «Реализация товаров и услуг»

Т.к. мы создали в плане обмена два реквизита для фильтрации объектов, то в ПРО укажим эти условия сравнения. Для фильтра «Организации» установим равенство организации указанной в узле обмена и источника документа на равенство. А для фильтра «Граничная дата» сравним дату документа с датой из узла (больше и равно). Если требуются более сложные правила, то Вы всегда можете использовать обработчики событий. К примеру, если требуется проверить условия по вхождению контрагента по «неким правилам» используйте свой код проверки, результатом должно быть значение флага Отказ (Отказ=Истина – не прошел, Отказ=Ложь – все ок).

Выгружаем и сохраняем ПРО.

Шаг третий. После, того как мы сохранили правила нам нужно связать его с соответствующим планом обмена. Эти функции выполняет регистр сведений «Правила для обмена данными», либо через мастер настроек.

Добавление данных в регистр сведений «Правила обмена данными»

Добавление данных в регистр сведений «Правила обмена данными»

Рис. 2 Добавление данных в регистр сведений «Правила обмена данными»

Выбираем план обмена из загружаем ПРО из типовых (список макетов) или из файла на диске. После этой операции наш план обмена будет связан с этими правилами.

Шаг четвертый. Если вы создаете свой план, тогда необходимо добавить еще подписку на событие. Для этого создадим объект с именем «Обмен данными с внешними базами», укажем событие при записи и тип источника «Документ Реализация Товаров и Услуг» (можно использовать составной), и создадим процедуру в которую необходимо вставить следующий код:

Процедура ОбменДаннымиСВнешнимиБазамиПриЗаписи(Источник, Отказ) Экспорт
// проверка для регистрации объекта
ОбменДаннымиСобытия.МеханизмРегистрацииОбъектовПередЗаписью(«ОбменСБухгалтерией», Источник, Отказ);
КонецПроцедуры

Заключение. Все, теперь выбранные объекты данных будут регистрироваться в зависимости от необходимых произвольных условий. Если вы используете типовую конфигурацию – Бухгалтерию, УТ, УПП или др., то Вам всего, лишь необходимо создать ПРО и связать их с типовым планом обмена.

Содержание

  1. 1с правила регистрации объектов как настроить
  2. Механизмы интеграции
  3. Синхронизация данных
  4. Расширение плана обмена
  5. Добавление плана обмена
  6. Веб-сервисы
  7. Веб-сервис Files
  8. Веб-сервис DMService
  9. Библиотека интеграции 1С:Документооборота

1с правила регистрации объектов как настроить

Пример. Настроена типовая синхронизация данных между «Управление торговлей 11.2» и «Бухгалтерия предприятия 3.0». Требуется запретить выгрузку из «Управление торговлей» документов «Авансовый отчёт».

Для выполнения задачи нам нужно настроить правила регистрации объектов. Мы запретим регистрацию документов с типом «Авансовый отчёт», и они не будут выгружаться в «Бухгалтерия предприятия».

Для настройки правил регистрации нам в первую очередь нужно выгрузить типовые правила из нашей программы «Управление торговлей». Соответствующая кнопка «Выгрузить правила регистрации объектов» находится на вкладке «Синхронизация». После выгрузки правил мы открываем конфигурацию «1С: Конвертация данных 2.0» и загружаем правила регистрации в неё.

Приступаем к настройке правил.

В списке правил видим строку «Авансовый отчёт». На этой строке правой кнопкой мыши вызываем контекстное меню и выбираем пункт «Изменить». Откроется форма настройки правила регистрации для документа «Авансовый отчёт». Открываем вкладку «Обработчики событий».

Нас интересует событие «Перед обработкой». В поле этого события мы добавим такую строчку:

Сохраняем правила в файл. Затем загружаем файл в программу «Управление торговлей». Делается это на вкладке «Синхронизация».

Теперь документы «Авансовый отчёт» не будут регистрироваться к выгрузке.

Источник

Механизмы интеграции

Синхронизация данных

Конфигурация «1С:Документооборот» редакции КОРП содержит несколько встроенных планов обмена с другими типовыми конфигурациями на платформе «1С:Предприятие».

Редакции ПРОФ и ДГУ не содержат таких планов обмена. Тем не менее, все редакции поддерживают обмен данными с помощью встроенной обработки УниверсальныйОбменДаннымиXML , использующей внешние правила обмена, загружаемые из файла. Собственные планы обмена можно добавить в любую из редакций.

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

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

Встроенные планы обмена используют подсистему Обмен данными «Библиотеки стандартных подсистем» (далее БСП) редакции 2. Это значит, что в составе каждого плана обмена есть макет с правилами регистрации, а также макеты правил обмена и правил обмена конфигурации-корреспондента:

  • Правила регистрации используются в «1С:Документообороте» для определения необходимости регистрации записываемого объекта к выгрузке в конфигурацию-корреспондент.
    • Типовые правила регистрации тривиальны (содержат только перечень регистрируемых объектов без дополнительных условий).
    • Автоматическая регистрация изменений в планах обмена выключена, для регистрации используется стандартная механика БСП, анализирующая изменения в выгружаемых полях перед регистрацией.
  • Правила обмена используются для выгрузки данных из «1С:Документооборота» в конфигурацию-корреспондент.
  • Правила обмена корреспондента используются в «1С:Документообороте» только в части кода обработчиков, выполняемых на стороне «1С:Документооборота» после загрузки.

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

  • после обновления конфигурации-корреспондента. В этом случае свежий комплект правил находится в составе дистрибутива обновления, в папке «Синхронизация данных»;
  • во время отладки правил обмена, разрабатываемых на основе типовых правил, если они требуют доработки на конкретном внедрении.

После отладки доработанных правил обмена рекомендуется включить их в состав конфигурации, сняв с поддержки макеты, чтобы:

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

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

Правила обмена разрабатываются с помощью конфигурации «Конвертация данных» редакции 2.1. Конфигурация бесплатна и доступна по линии ИТС. Рекомендуется использовать типовые правила как основу для разработки, сохранив их в файлы и загрузив в информационную базу «Конвертации данных».

«1С:Документооборот» не поддерживает обмен данными в формате EnterpriseData. Соответственно, для разработки правил обмена не следует использовать конфигурацию «Конвертация данных» редакции 3.

Расширение плана обмена

При включении новых объектов в существующий план обмена следует:

  1. Включить эти объекты в состав плана обмена, запретив автоматическую регистрацию изменений.
  2. Включить эти объекты в состав источников соответствующих подписок на события.
    • Для регистров подписка будет называться ОбменДанными ПередЗаписьюРегистра . Возможно, в обработчик подписки потребуется внести дополнительные условия, если он не рассчитан на появление нового регистра.
    • Для ссылочных объектов будет две подписки: ОбменДанными ПередЗаписьюРегистра и ОбменДанными ПередУдалением . Как правило, обработчики этих событий не нуждаются в доработке, поскольку передают управление стандартным процедурам БСП.
    • Если регистрация не требует дополнительных условий, больше ничего делать не нужно. Если нужно регистрировать документы при изменении их состояния, например, выгружая только согласованные документы, следует внести доработки в модуль набора записей регистра сведений ТекущиеСостоянияДокументов по аналогии с уже имеющимся там кодом для обмена с конфигурациями «1С:Бухгалтерия предприятия» и «1С:Управление холдингом». В последнем случае следует внести проверку на состояние также и в обработчик ПередВыгрузкой правила выгрузки данных с тем, чтобы избежать выгрузки документов, чье состояние изменилось уже после регистрации в плане обмена, либо предусмотреть передачу пометки на удаление в конфигурацию-корреспондент.
  3. С помощью конфигурации «Конвертация данных» создать для этих объектов соответствующие правила выгрузки данных и правила конвертации объектов.

Загрузить измененные правила из файлов и после отладки подменить ими типовые макеты.

Добавление плана обмена

При разработке собственных планов обмена следует:

  1. Создать новый план обмена на стороне обеих конфигураций. Имя плана обмена должно быть одинаковым в обеих конфигурациях. Состав обязательных процедур модуля менеджера плана обмена приведен в документации к подсистеме Обмен данными «Библиотеки стандартных подсистем» соответствующей версии.
  2. Включить в состав планов обмена объекты, участвующие в обмене, а также регистр сведений СоответствиеОбъектовИнформационныхБаз , запретив авторегистрацию изменений. Использование собственного механизма регистрации БСП позволит избежать выгрузки объектов, изменившихся только в части не участвующих в обмене реквизитов.
  3. Создать подписки на события, аналогичные описанным выше, и обработчики для них. Лучше создать для этого отдельный общий модуль, не снимая с поддержки общий модуль ОбменДаннымиСобытияДокументооборот .
  4. Включить новый план обмена в тип параметра общих команд подсистемы Обмен данными . Проще всего найти нужные команды, выполнив в Конфигураторе поиск ссылок на типовой план обмена.
  5. Включить новый план обмена в код процедуры ПолучитьПланыОбмена общего модуля ОбменДаннымиПереопределяемый .
  6. При необходимости создать формы настройки плана обмена (см. документацию к «Библиотеке стандартных подсистем», а также примеры в планах обмена с конфигурациями «1С:Бухгалтерия» предприятия и «1С:Управление производственным предприятием»).
  7. Сохранить описания обновленных конфигураций в файлы с помощью обработки MD8 Exp.epf , входящей в состав дистрибутива конфигурации «Конвертация данных».
  8. Загрузить описания конфигураций в информационную базу «Конвертации данных».
  9. Разработать два набора правил обмена и два набора правил регистрации для каждой из сторон обмена.
  10. Добавить оба набора правил обмена и по одному набору правил регистрации в каждую конфигурацию в качестве макетов плана обмена.
  11. Настроить синхронизацию данных и отладить ее.

Обратите внимание:
Правила обмена, зачитанные из макетов в составе конфигурации, кэшируются в регистре сведений ПравилаДляОбменаДанными . При отладке рекомендуется использовать загрузку правил обмена из файла. Для обновления правил из макета следует изменить номер версии конфигурации или выполнить загрузку вручную по команде Загрузить правила… , выбрав вариант Из конфигурации .

Веб-сервисы

Типовая конфигурация «1С:Документооборот» содержит набор веб-сервисов.

Некоторые из них специализированы и служат, например, для обмена с мобильными устройствами или для синхронизации данных с другими информационными базами, разработанными с применением «Библиотеки стандартных подсистем».

Два веб-сервиса, однако, предназначены для интеграции с произвольными внешними программами, как разработанными на платформе «1С:Предприятие», так и любыми другими, способными обращаться к веб-сервисам. Речь идет о веб-сервисах:

  • Files – простой сервис, поддерживающий работу с файлами и папками «1С:Документооборота» извне.
  • DMService – поддерживает работу с основными объектами и функциями «1С:Документооборота». Перекрывает функционал веб-сервиса Files . Используется «Библиотекой интеграции 1С:Документооборота».

Данные веб-сервисы включены во все редакции «1С:Документооборота».

Работа с веб-сервисами из прикладных решений на платформе «1С:Предприятие», как правило, строится следующим образом:

  1. Определяется способ хранения и редактирования настроек подключения к веб-сервису. Настройки состоят из:
    • Адреса веб-сервиса;
    • Имени пользователя и пароля (в текущих версиях платформы поддерживается только аутентификация «1С:Предприятия», поэтому следует либо предоставить пользователям интегрируемого прикладного решения возможность ввести имя пользователя и пароль, либо использовать для доступа служебную учетную запись, для которой запрещен интерактивный вход);
    • Таймаута при обращении к сервису (при низком качестве соединения, а также при первом обращении к сервису задержки могут быть значительными).
  2. Определяется способ получения WSПрокси для обращения к веб-сервису. Операции создания WSОпределений и WSПрокси достаточно затратны, поэтому рекомендуется выносить получение реквизитов, в отдельный общий модуль с повторно возвращаемыми значениями.
  3. Создаются процедуры и функции, являющиеся обертками для функционала веб-сервиса на стороне прикладного решения. Непосредственную работу с объектами XDTO рекомендуется инкапсулировать в них, чтобы облегчить доработки при изменении функционала сервиса.

Примеры использования веб-сервисов можно увидеть в «Библиотеке интеграции 1С:Документооборота», поставляемой в составе дистрибутива «1С:Документооборота».

Веб-сервис Files

Веб-сервис использует всего четыре типа объектов:

  • File – файл в папке.
  • Folder – папка файлов.
  • ShortFileInfo – сведения о файле, возвращаемые сервисом после его создания.
  • FileList – список файлов, отобранных по условиям.
  • GetFileList – получает список файлов в указанной папке.
  • GetFile – получает файл по указанному коду файла.
  • AddFile – добавляет файл в указанную папку.
  • DeleteFile – помечает файл на удаление.
  • FindFolder – находит папку по наименованию в указанной родительской папке.
  • AddFolder – создает новую папку в указанной родительской папке.

Все действия, выполняемые этим веб-сервисом, можно выполнить с помощью веб-сервиса DMService. Работа с файлами документов поддерживается только DMService.

Веб-сервис DMService

Сервис использует XDTO-пакет DM. Пакет содержит несколько десятков прикладных объектов, являющихся представлениями таких объектов «1С:Документооборота», как файлы, документы, процессы, задачи и так далее. Все они — потомки абстрактного DMObject и имеют общие свойства objectId и externalObject .

Свойство objectId представляет собой ссылку на объект «1С:Документооборота» и содержит его представление, идентификатор и тип.

Свойство externalObject представляет собой ссылку на объект интегрируемой программы и так же содержит его представление, идентификатор и тип. Свойство заполняется сервисом автоматически, если объект «1С:Документооборота» был ранее связан с объектом интегрируемой конфигурации, например, при создании или записи с заполненным свойством externalObject .

Сервис поддерживает всего одну операцию, execute . В качестве параметра передается объект-потомок DMRequest . Требуемая операция и ее параметры определяются типом переданного объекта и его свойствами. Например, запрос DMGetObjectListRequest получает список объектов типа, указанного в свойстве type по условиям, указанным в свойстве query .

Результат операции возвращается в объекте-потомке DMResponse . В простейших случаях это объект DMOK . В случае ошибки возвращается DMError , содержащий краткое ( subject ) и полное ( description ) описание ошибки.

Для большинства запросов существуют парные им объекты-ответы, содержащие результат выполненной операции. Например, список объектов, полученный вызовом DMGetObjectListRequest , возвращается в объекте DMGetObjectListResponse .

Приведем простейший пример работы с веб-сервисом на встроенном языке платформы «1С:Предприятие». Начнем с получения определений и прокси веб-сервиса (подразумевается, что адрес публикации, имя пользователя и пароль уже получены):

Cоздадим запрос на получение списка внутренних документов:

Определим условие запроса (поиск по наименованию):

Выполним запрос, проверив результат на предмет ошибки:

Разберем ответ, заполнив таблицу названиями и идентификаторами найденных документов:

Подробное описание объектов и операций сервиса дается в составе дистрибутива «1С:Документооборота» (файл «Описание веб-сервисов.html» в каталоге шаблонов). Это описание доступно также из интерфейса демонстрационной конфигурации «Библиотека интеграции с 1С:Документооборотом», которая содержит также более сложные и полезные примеры использования сервиса.

При выпуске новых версий «1С:Документооборота» сервис расширяется и дополняется новыми объектами и свойствами так, чтобы не затронуть работу клиентских приложений, не знающих об этих изменениях. Этого же принципа следует придерживаться при самостоятельном изменении функционала сервиса: например, добавляя новые свойства, устанавливать минимальное количество в 0.

Обработка запросов к сервису сосредоточена в общих модулях:

  • ОбработкаЗапросовXDTO – общий вход для всех вызовов
  • ОбработкаЗапросовXDTOБизнесПроцессыИЗадачи
  • ОбработкаЗапросовXDTOДокументы
  • ОбработкаЗапросовXDTOФайлы

Присутствуют только в редакции КОРП:

  • ОбработкаЗапросовXDTOКорп
  • ОбработкаЗапросовXDTOОбмен
  • ОбработкаЗапросовXDTOПочта
  • ОбработкаЗапросовXDTOУчетВремени

Перед использованием сервиса следует получать его версию и редакцию запросом DMGetVersionRequest и не пользоваться возможностями, которые не поддерживает сервис. Попытка использовать отсутствующие возможности, например, попытка создать исходящее письмо в редакции ПРОФ, приведет к ошибке (возврату DMError ).

Доработки рекомендуется вносить в модуль ОбработкаЗапросовXDTO Переопределяемый . Его процедуры и функции позволяют провести дополнительное изменение объектов XDTO при их создании по объектам «1С:Документооборота» и наоборот.

Библиотека интеграции 1С:Документооборота

«Библиотека интеграции 1С:Документооборота» (далее БИД) не является самостоятельным прикладным решением, хотя и содержит некоторые демонстрационные объекты, и предназначена для встраивания в прикладные решения на платформе «1С:Предприятие».

БИД может использоваться с любыми версиями «1С:Документооборота», начиная с редакции 1.2.

БИД публикуется в составе дистрибутива «1С:Документооборота» и предназначена для работы с «Библиотекой стандартных подсистем» версии, последней на момент публикации. Однако адаптация БИД к конфигурациям, содержащим более ранние версии БСП, не составляет большого труда, поскольку БИД использует функционал БСП в небольшом объеме.

Более подробное описание «Библиотеки интеграции 1С:Документооборота» и порядка ее встраивания содержится в документации, поставляемой в составе дистрибутива (папка DocDMIL ).

Источник

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • 1с 274с ошибка подключения
  • 1с 274d ошибка подключения