Импорт документа «Акт выполненных работ»
<< Click to Display Table of Contents >> Интеграция с 1С > Интеграция с 1C: Бухгалтерия предприятия 3.0 > Разработка правил синхронизации > Синхронизация новых объектов Импорт документа «Акт выполненных работ» |
Задача:
Необходимо импортировать документ с типом «Акт выполненных работ» из «1С: Бухгалтерия предприятия 3.0» в Directum RX.
Решение:
1.Создайте дополнительное расширение в конфигураторе «1С Бухгалтерия предприятие 3.0», если его еще не создали.
2.В стандартной конфигурации в дереве объектов выберите документ РеализацияТоваровУслуг и в контекстном меню объекта выберите пункт Добавить в расширение:
3.В открывшемся списке выберите созданное расширение и нажмите на кнопку Выбрать:
4.В свойствах плана обмена нажмите на кнопку Состав. В открывшемся окне выберите документ и в столбце Авторегистрация для него установите значение Запретить:
5.Настройте документ. Для этого в дереве документа РеализацияТоваровУслуг выберите пункт Реквизиты и нажмите на кнопку Добавить.
6.В открывшемся окне заполните поля:
Имя. Укажите значение rx_ID.
Синоним. Укажите значение ID_RX.
Тип. Укажите значение Число.
Длина. Укажите значение 19.
Индексировать. Укажите значение Индексировать.
7.В модуле объекта документа добавьте обработчики событий:
•«При копировании». Служит для очистки реквизита rx_ID при копировании записи.
Пример:
&После("ПриКопировании")
Процедура rx_ПриКопировании(ОбъектКопирования)
rx_ID = "";
КонецПроцедуры
8.В модуле менеджера добавьте обработчики событий:
•«Правило отбора». Служит для отправки записей документа из 1С в Directum RX. При этом синхронизируются только новые и непроведенные документы с видом операции «Услуги».
Пример:
Функция ПравилаОтбора(ПараметрыВыполнения) Экспорт
ВидОперации = ПараметрыВыполнения.ВидОперации;
СтруктураОтбор = Новый Структура;
Если ВидОперации = Перечисления.rx_ВидыОперацийСинхронизации.PUSH Тогда
СтрокаОтбор1С = "НЕ Проведен
| И rx_ID = 0
| И ВидОперации = Значение(Перечисление.ВидыОперацийРеализацияТоваров.Услуги)";
СтруктураОтбор.Вставить("ПравилоОтбораИз1С", СтрокаОтбор1С);
ИначеЕсли ВидОперации = Перечисления.rx_ВидыОперацийСинхронизации.PULL Тогда
КонецЕсли;
Возврат СтруктураОтбор;
КонецФункции
•«Правило поиска». Служит для поиска соответствующей записи в Directum RX по полям: Наша орг., Контрагент, Договор, Рег. номер и Дата документа.
Пример:
Функция ПравилоПоиска(ПараметрыВыполненияПравила) Экспорт
ВидОперации = ПараметрыВыполненияПравила.ВидОперации;
Результат = Неопределено;
Если ВидОперации = Перечисления.rx_ВидыОперацийСинхронизации.PUSH Тогда
Результат = ПоискПриОтправкеДанных(ПараметрыВыполненияПравила);
КонецЕсли;
Возврат Результат;
КонецФункции
•«Поиск при отправке данных». Используется в функции «Правило поиска».
Пример:
Функция ПоискПриОтправкеДанных(ПараметрыВыполненияПравила)
Перем РеквизитНаименование, РеквизитОбъектВладелец;
ТаблицаВыборки = ПараметрыВыполненияПравила.ВыборкаДанные;
ЗаписьЖурналОбмена = ПараметрыВыполненияПравила.ЗаписьЖурналОбмена;
ИмяСущностиRX = ПараметрыВыполненияПравила.ИмяСущностиRX;
КлючНастройки = ПараметрыВыполненияПравила.КлючНастройки;
ТекущиеДанныеСсылка = ПараметрыВыполненияПравила.ТекущиеДанные;
IDТекущейСистемы = ПараметрыВыполненияПравила.IDТекущейСистемы;
ТипОбъектаИнтеграцииИмя = ПараметрыВыполненияПравила.Настройка.ТипОбъектаИнтеграцииИмя;
ТекущийУИД = ПараметрыВыполненияПравила.ТекущийУИД;
Настройка = ПараметрыВыполненияПравила.Настройка;
СоответствияРеквизитов = Настройка["РеквизитыОбъектаИнтеграции"];
Результат = Неопределено;
РеквизитыОбъекта = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ТекущиеДанныеСсылка, "Номер, Дата, ДоговорКонтрагента, Контрагент, Организация");
ПараметрыВыполненияПравила.Вставить("ДанныеРеквизитаСсылка", РеквизитыОбъекта.Контрагент);
СоответствиеКонтрагентаID = PUSH_ОбработкаКонтрагента(ПараметрыВыполненияПравила);
ПараметрыВыполненияПравила.Вставить("ДанныеРеквизитаСсылка", РеквизитыОбъекта.ДоговорКонтрагента);
СоответствиеДоговораКонтрагентаID = PUSH_ОбработкаДоговораКонтрагента(ПараметрыВыполненияПравила);
ПараметрыВыполненияПравила.Вставить("ДанныеРеквизитаСсылка", РеквизитыОбъекта.Организация);
СоответствиеОрганизацииID = PUSH_ОбработкаОрганизации(ПараметрыВыполненияПравила);
ДанныеПоиска = Новый Структура;
ДанныеПоиска.Вставить(СоответствияРеквизитов["Номер"]["РеквизитRX"], РеквизитыОбъекта.Номер);
ДанныеПоиска.Вставить(СоответствияРеквизитов["Дата"]["РеквизитRX"], РеквизитыОбъекта.Дата);
ДанныеПоиска.Вставить(СоответствияРеквизитов["Контрагент"]["РеквизитRX"], Новый Структура);
ДанныеПоиска[СоответствияРеквизитов["Контрагент"]["РеквизитRX"]].Вставить("Id", СоответствиеКонтрагентаID["Id"]);
ДанныеПоиска.Вставить(СоответствияРеквизитов["Организация"]["РеквизитRX"], Новый Структура);
ДанныеПоиска[СоответствияРеквизитов["Организация"]["РеквизитRX"]].Вставить("Id", СоответствиеОрганизацииID["Id"]);
РазвернутьПоВсемПолям = Новый Массив;
ПроверкаСтрокиНаРавенство = Истина;
Результат = rx_Ядро.ПоискСущностиRX("IContractStatements", ДанныеПоиска, ЗаписьЖурналОбмена, РазвернутьПоВсемПолям, ПроверкаСтрокиНаРавенство);
Возврат Результат;
КонецФункции
•«Правило после обработки». Служит для нумерации и формирования печатной формы документа в Directum RX.
Пример:
Процедура ПравилоПослеОбработки(ПараметрыВыполнения) Экспорт
ВидОперации = ПараметрыВыполнения.ВидОперации;
Если ВидОперации = Перечисления.rx_ВидыОперацийСинхронизации.PUSH Тогда
ЗарегистрироватьУстановитьНомерДокумента(ПараметрыВыполнения);
ПодготовитьПечатнуюФорму(ПараметрыВыполнения);
КонецЕсли;
КонецПроцедуры
•«Зарегистрировать и установить номер документа». Используется в функции «Правило после обработки».
Пример:
Процедура ЗарегистрироватьУстановитьНомерДокумента(ПараметрыВыполнения)
ЗаписьЖурналОбмена = ПараметрыВыполнения.ЗаписьЖурналОбмена;
Ссылка = ПараметрыВыполнения.Ссылка;
РеквизитыОбъекта = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка, "rx_ID, Номер, Дата");
Документ_ID = РеквизитыОбъекта.rx_ID;
Номер = РеквизитыОбъекта.Номер;
Дата = РеквизитыОбъекта.Дата;
Ответ = rx_МеханизмСинхронизации.RX_TryExternalRegisterDocument(Документ_ID, Номер, Дата);
Если Ответ.КодСостояния >= 200 И Ответ.КодСостояния < 300 Тогда
СоответствиеРезультат = rx_Ядро.ПростоеЧтениеJSON(Ответ.Данные);
Если НЕ СоответствиеРезультат["value"] Тогда
ТекстСообщения = НСтр("ru = 'Не удалось пронумеровать документ (ИД ''%1'') с номером ''%2'' и датой ''%3''.'");
ТекстСообщения = СтрШаблон(ТекстСообщения, Документ_ID, Номер, Дата);
rx_Ядро.ЗаписьВЖурнал(ТекстСообщения, Перечисления.rx_СтатусыОбмена.Сообщение, "МодульМенеджера.РеализацияТоваровУслуг:ЗарегистрироватьУстановитьНомерДокумента", ЗаписьЖурналОбмена, Ложь, Ложь);
КонецЕсли;
Иначе
ТекстОшибки = НСтр("ru = ' В ходе выполнения функции RX_TryExternalRegisterDocument возникла ошибка: %1%2'");
ТекстОшибки = СтрШаблон(ТекстОшибки, Символы.ПС, Ответ.ТекстОшибки);
rx_Ядро.ЗаписьВЖурнал(ТекстОшибки, Перечисления.rx_СтатусыОбмена.Ошибка, "МодульМенеджера.РеализацияТоваровУслуг:ЗарегистрироватьУстановитьНомерДокумента", ЗаписьЖурналОбмена, Ложь, Ложь);
КонецЕсли;
КонецПроцедуры
•«Подготовить печатную форму». Используется в функции «Правило после обработки».
Пример:
Процедура ПодготовитьПечатнуюФорму(ПараметрыВыполнения)
Body = Неопределено;
ЗаписьЖурналОбмена = ПараметрыВыполнения.ЗаписьЖурналОбмена;
Настройка = ПараметрыВыполнения.Настройка;
Ссылка = ПараметрыВыполнения.Ссылка;
ПолноеИмяОбъектаМД = Настройка.ТипОбъектаИнтеграцииПолноеИмя;
ИмяМакета = "Акт";
ПараметрыПечати = Новый Структура("ДополнитьКомплектВнешнимиПечатнымиФормами", Ложь);
ДопустимыеТипыОбъектовПечати = Неопределено;
МассивОбъектов = Новый Массив;
МассивОбъектов.Добавить(Ссылка);
ПечатныеФормы = УправлениеПечатью.СформироватьПечатныеФормы(ПолноеИмяОбъектаМД, ИмяМакета, МассивОбъектов, ПараметрыПечати, ДопустимыеТипыОбъектовПечати);
КоллекцияПечатныхФорма = ПечатныеФормы.КоллекцияПечатныхФорм;
Если НЕ ЗначениеЗаполнено(КоллекцияПечатныхФорма) Тогда
Возврат;
КонецЕсли;
ТабличныйДокумент = КоллекцияПечатныхФорма[0].ТабличныйДокумент;
Поток = Новый ПотокВПамяти;
ТабличныйДокумент.Записать(Поток, ТипФайлаТабличногоДокумента.PDF);
ДвоичныеДанные = Поток.ЗакрытьИПолучитьДвоичныеДанные();
Body = Base64Строка(ДвоичныеДанные);
rx_ID = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "rx_ID");
Version_ID = rxe_МеханизмыСинхронизации.СоздатьВерсиюДокумента(rx_ID, ЗаписьЖурналОбмена);
rxe_МеханизмыСинхронизации.УстановитьТелоДокумента(rx_ID, Version_ID, Body, ЗаписьЖурналОбмена);
КонецПроцедуры
•Правило для заполнения реквизитов договора.
Пример для получения договора:
Функция ПолучитьДоговорКонтрагента(ПараметрыВыполненияПравила) Экспорт
Результат = Неопределено;
ВидОперации = ПараметрыВыполненияПравила.ВидОперации;
Если ВидОперации = Перечисления.rx_ВидыОперацийСинхронизации.PUSH Тогда
Результат = PUSH_ОбработкаДоговораКонтрагента(ПараметрыВыполненияПравила);
КонецЕсли;
Возврат Результат;
КонецФункции
Пример для обработки договора:
Функция PUSH_ОбработкаДоговораКонтрагента(ПараметрыВыполнения)
ЗаписьЖурналОбмена = ПараметрыВыполнения.ЗаписьЖурналОбмена;
ВладелецСсылка = ПараметрыВыполнения.ДанныеРеквизитаСсылка;
Если НЕ ЗначениеЗаполнено(ВладелецСсылка) Тогда
ТекстСообщения = НСтр("ru = 'В загружаемом документе - не указан договор!'");
rx_Ядро.ЗаписьВЖурнал(ТекстСообщения, Перечисления.rx_СтатусыОбмена.Сообщение, "МенеджерОбъектаРеализацияТоваровУслуг:Отправка_ОбработкаДоговораКонтрагента", ЗаписьЖурналОбмена, Ложь, Ложь);
Возврат Неопределено;
КонецЕсли;
РеквизитыОбъекта = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ВладелецСсылка, "rx_ID, Наименование");
rx_ID = РеквизитыОбъекта.rx_ID;
Если НЕ ЗначениеЗаполнено(rx_ID) Тогда
Если НЕ rx_РегистрацияИзмененийОбъектов.ЗарегистрироватьОбъектПоПравилуСинхронизацииСУчетомОтбора(ВладелецСсылка) Тогда
ТекстСообщения = НСтр("ru = 'В загружаемом документе договор - ''%1'' не может быть синхронизирован. Проверьте правила синхронизации для данного объекта'");
ТекстСообщения = СтрШаблон(ТекстСообщения, РеквизитыОбъекта.Наименование);
rx_Ядро.ЗаписьВЖурнал(ТекстСообщения, Перечисления.rx_СтатусыОбмена.Сообщение, "МенеджерОбъектаРеализацияТоваровУслуг:Отправка_ОбработкаДоговораКонтрагента", ЗаписьЖурналОбмена, Ложь, Истина);
КонецЕсли;
УзелРегистрации = rx_ОбработчикиКэширование.ПолучениеУзлаРегистрации();
rx_Ядро.РегистрацияОбъектовНаУзле(УзелРегистрации, ВладелецСсылка);
ТекстСообщения = НСтр("ru = 'В загружаемом документе договор - ''%1'' не синхронизирован.
|Договор будет синхронизирован при очередной обработке правила синхронизации контрагентов.
|Документ будет синхронизирован в следующей сессии.'");
ТекстСообщения = СтрШаблон(ТекстСообщения, РеквизитыОбъекта.Наименование);
rx_Ядро.ЗаписьВЖурнал(ТекстСообщения, Перечисления.rx_СтатусыОбмена.Сообщение, "МенеджерОбъектаРеализацияТоваровУслуг:Отправка_ОбработкаДоговораКонтрагента", ЗаписьЖурналОбмена, Ложь, Истина);
КонецЕсли;
Результат = Новый Соответствие;
Результат.Вставить("Id", rx_ID);
Возврат Результат;
КонецФункции
•Правило для заполнения реквизитов контрагента.
Пример для получения контрагента:
Функция ПолучитьКонтрагента(ПараметрыВыполненияПравила) Экспорт
Результат = Неопределено;
ВидОперации = ПараметрыВыполненияПравила.ВидОперации;
Если ВидОперации = Перечисления.rx_ВидыОперацийСинхронизации.PUSH Тогда
Результат = PUSH_ОбработкаКонтрагента(ПараметрыВыполненияПравила);
КонецЕсли;
Возврат Результат;
КонецФункции
Пример для обработки контрагента:
Функция PUSH_ОбработкаКонтрагента(ПараметрыВыполнения)
ЗаписьЖурналОбмена = ПараметрыВыполнения.ЗаписьЖурналОбмена;
ВладелецСсылка = ПараметрыВыполнения.ДанныеРеквизитаСсылка;
Если НЕ ЗначениеЗаполнено(ВладелецСсылка) Тогда
ТекстСообщения = НСтр("ru = 'В загружаемом документе - не указан контрагент!'");
rx_Ядро.ЗаписьВЖурнал(ТекстСообщения, Перечисления.rx_СтатусыОбмена.Сообщение, "МенеджерОбъектаРеализацияТоваровУслуг:Отправка_ОбработкаКонтрагента", ЗаписьЖурналОбмена, Ложь, Истина);
КонецЕсли;
РеквизитыОбъекта = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ВладелецСсылка, "rx_ID, Наименование");
rx_ID = РеквизитыОбъекта.rx_ID;
Если НЕ ЗначениеЗаполнено(rx_ID) Тогда
Если НЕ rx_РегистрацияИзмененийОбъектов.ЗарегистрироватьОбъектПоПравилуСинхронизацииСУчетомОтбора(ВладелецСсылка) Тогда
ТекстСообщения = НСтр("ru = 'В загружаемом документе контрагент - ''%1'' не может быть синхронизирован. Проверьте правила синхронизации для данного объекта'");
ТекстСообщения = СтрШаблон(ТекстСообщения, РеквизитыОбъекта.Наименование);
rx_Ядро.ЗаписьВЖурнал(ТекстСообщения, Перечисления.rx_СтатусыОбмена.Сообщение, "МенеджерОбъектаРеализацияТоваровУслуг:Отправка_ОбработкаКонтрагента", ЗаписьЖурналОбмена, Ложь, Истина);
КонецЕсли;
УзелРегистрации = rx_ОбработчикиКэширование.ПолучениеУзлаРегистрации();
rx_Ядро.РегистрацияОбъектовНаУзле(УзелРегистрации, ВладелецСсылка);
ТекстСообщения = НСтр("ru = 'В загружаемом документе контрагент - ''%1'' не синхронизирован.
|Контрагент будет синхронизирован при очередной обработке правила синхронизации контрагентов.
|Документ будет синхронизирован в следующей сессии.'");
ТекстСообщения = СтрШаблон(ТекстСообщения, РеквизитыОбъекта.Наименование);
rx_Ядро.ЗаписьВЖурнал(ТекстСообщения, Перечисления.rx_СтатусыОбмена.Сообщение, "МенеджерОбъектаРеализацияТоваровУслуг:Отправка_ОбработкаКонтрагента", ЗаписьЖурналОбмена, Ложь, Истина);
КонецЕсли;
Результат = Новый Соответствие;
Результат.Вставить("Id", rx_ID);
Возврат Результат;
КонецФункции
•Правило для заполнения реквизита Наша орг..
Пример для получения поля Наша орг.:
Функция ПолучитьОрганизацию(ПараметрыВыполненияПравила) Экспорт
Результат = Неопределено;
ВидОперации = ПараметрыВыполненияПравила.ВидОперации;
Если ВидОперации = Перечисления.rx_ВидыОперацийСинхронизации.PUSH Тогда
Результат = PUSH_ОбработкаОрганизации(ПараметрыВыполненияПравила);
КонецЕсли;
Возврат Результат;
КонецФункции
Пример для обработки поля Наша орг.:
Функция PUSH_ОбработкаОрганизации(ПараметрыВыполнения)
ОрганизацияСсылка = ПараметрыВыполнения.ДанныеРеквизитаСсылка;
ЗаписьЖурналОбмена = ПараметрыВыполнения.ЗаписьЖурналОбмена;
Если НЕ ЗначениеЗаполнено(ОрганизацияСсылка) Тогда
ТекстОшибки = НСтр("ru = 'В загружаемом документе не заполнен реквизит - Организация. Документ не отправлен!'");
rx_Ядро.ЗаписьВЖурнал(ТекстОшибки, Перечисления.rx_СтатусыОбмена.Ошибка, "МенеджерОбъектаРеализацияТоваровУслуг:Отправка_ОбработкаОрганизации", ЗаписьЖурналОбмена, Ложь, Истина);
КонецЕсли;
РеквизитыОбъекта = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ОрганизацияСсылка, "Наименование, ИНН, КПП");
ИНН = РеквизитыОбъекта.ИНН;
КПП = РеквизитыОбъекта.КПП;
Если НЕ ЗначениеЗаполнено(ИНН) Тогда
ТекстОшибки = НСтр("ru = 'При обработке реквизита - <Организация> у объекта - ''%1'' не указан ИНН и/или КПП. Документ не отправлен!'");
ТекстОшибки = СтрШаблон(ТекстОшибки, РеквизитыОбъекта.Наименование);
rx_Ядро.ЗаписьВЖурнал(ТекстОшибки, Перечисления.rx_СтатусыОбмена.Ошибка, "МенеджерОбъектаРеализацияТоваровУслуг:Отправка_ОбработкаОрганизации", ЗаписьЖурналОбмена, Ложь, Истина);
КонецЕсли;
ДанныеПоиска = Новый Структура;
ДанныеПоиска.Вставить("TIN", ИНН);
ДанныеПоиска.Вставить("TRRC", КПП);
МассивНайдено = rx_Ядро.ПоискСущностиRX("IBusinessUnits", ДанныеПоиска, ЗаписьЖурналОбмена, Неопределено);
Если МассивНайдено = Неопределено ИЛИ НЕ МассивНайдено.Количество() Тогда
ТекстОшибки = НСтр("ru = 'Организация - ''%1'' не найдена в системе RX. Документ не отправлен!'");
ТекстОшибки = СтрШаблон(ТекстОшибки, РеквизитыОбъекта.Наименование);
rx_Ядро.ЗаписьВЖурнал(ТекстОшибки, Перечисления.rx_СтатусыОбмена.Ошибка, "МенеджерОбъектаРеализацияТоваровУслуг:Отправка_ОбработкаОрганизации", ЗаписьЖурналОбмена, Ложь, Истина);
ИначеЕсли МассивНайдено.Количество() > 1 Тогда
ТекстОшибки = НСтр("ru = 'По указанным реквизитам Наименование = ''%1'' ИНН - ''%2'' и КПП - ''%3'' найдено несколько организаций в RX'");
ТекстОшибки = СтрШаблон(ТекстОшибки, РеквизитыОбъекта.Наименование, ИНН, КПП);
rx_Ядро.ЗаписьВЖурнал(ТекстОшибки, Перечисления.rx_СтатусыОбмена.Ошибка, "МенеджерОбъектаРеализацияТоваровУслуг:Отправка_ОбработкаОрганизации", ЗаписьЖурналОбмена, Ложь, Истина);
КонецЕсли;
ОрганизацияID = МассивНайдено[0];
Результат = Новый Соответствие;
Результат.Вставить("Id", ОрганизацияID);
Возврат Результат;
КонецФункции
•Правило для заполнения состояния документа.
Пример:
Функция ПолучитьСостояние(ПараметрыВыполненияПравила) Экспорт
Результат = "Draft";
Возврат Результат;
КонецФункции
9.Добавьте в дополнительное расширение модуль для регистрации событий объектов. Для этого во вкладке Общие выберите пункт Общие модули и нажмите на кнопку Добавить.
10.В открывшемся окне заполните поля:
Имя и Синоним модуля.
Клиент. Снимите флажок.
Сервер и Внешнее соединение. Установите флажки.
11.Добавьте функции для регистрации изменений событий:
•«Перед записью»;
•«При записи»;
•«Перед удалением».
Пример для события «Перед записью»:
Процедура rxe_РегистрацияИзмененийОбъектовПоНастройкамМаппингаПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
rx_РегистрацияИзмененийОбъектов.rx_РегистрацияИзмененийОбъектовПоНастройкамМаппингаПередЗаписью(Источник, Отказ);
КонецПроцедуры
Пример для события «При записи»:
Процедура rxe_РегистрацияИзмененийОбъектовПоНастройкамМаппингаПриЗаписи(Источник, Отказ) Экспорт
rx_РегистрацияИзмененийОбъектов.rx_РегистрацияИзмененийОбъектовПоНастройкамМаппингаПриЗаписи(Источник, Отказ);
КонецПроцедуры
Пример для события «Перед удалением»:
Процедура rxe_РегистрацияИзмененийОбъектовПоНастройкамМаппингаПередУдалением(Источник, Отказ) Экспорт
rx_РегистрацияИзмененийОбъектов.rx_РегистрацияИзмененийОбъектовПоНастройкамМаппингаПередУдалением(Источник, Отказ);
КонецПроцедуры
12.Добавьте обработчики для регистрации изменений событий. Для каждого события в дереве объектов расширения во вкладке Общие выберите пункт Подписки на события и нажмите на кнопку Добавить.
13.В открывшемся окне заполните поля:
Имя и Синоним обработчика.
Источник. Выберите документ ДокументОбъект.РеализацияТоваровУслуг.
Событие, для которого создается обработчик.
Обработчик. Укажите функцию обработки.
14.Настройте синхронизацию документа. Для этого в программе «1С: Бухгалтерия Предприятия 3.0» в справочнике «Правила синхронизации» создайте правило. Заполните в нем поля:
•Наименование. Укажите значение Реализация (акты);
•Тип объекта 1С. Укажите значение Реализация (акты, накладные, УДП)(Документ);
•Имя типа сущности RX. Укажите значение IContractStatements;
•ИД типа сущности RX. Укажите уникальный идентификатор типа документа. Подробнее см. в разделе «Как узнать идентификатор типа документа»;
•Мастер-система. Укажите значение 1C;
•Поиск записей. Укажите значение Программно.
15.Чтобы задать направление синхронизации:
•установите флажок Использовать при отправке из 1С в Directum RX;
•в поле Доступные направления обмена укажите значение Отправка.
16.В табличной части настройте соответствие полей 1С и Directum RX, а также укажите правила обработки:
Реквизит 1С |
Реквизит RX |
Правило |
---|---|---|
НаименованиеКраткое |
Name |
- |
Организация |
BusinessUnit |
Документы.РеализацияТоваровУслуг.ПолучитьОрганизацию(ПараметрыВыполненияПравила) |
Контрагент |
Counterparty |
Документы.РеализацияТоваровУслуг.ПолучитьКонтрагента(ПараметрыВыполненияПравила) |
Номер |
RegistrationNumber |
- |
Дата |
RegistrationDate |
- |
ДоговорКонтрагента |
LeadingDocument |
Документы.РеализацияТоваровУслуг.ПолучитьДоговорКонтрагента(ПараметрыВыполненияПравила) |
СуммаДокумента |
TotalAmount |
- |
- |
LifeCycleState |
Документы.РеализацияТоваровУслуг.ПолучитьСостояние(ПараметрыВыполненияПравила) |
Комментарий |
Note |
- |
17.Чтобы правило участвовало в синхронизации, нажмите на кнопку Активировать правило.
© Компания Directum, 2024 |