Различия

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

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
компоненты:асп_общие [2017/12/07 04:09]
adminasp [Подготовка к ХС/ПС к регистрации]
компоненты:асп_общие [2022/07/04 18:58] (текущий)
Строка 1: Строка 1:
 ====== Общий модуль АСП_Общие ====== ====== Общий модуль АСП_Общие ======
  
-Содержит персональный процедуры и функции интеграции. Единственный модуль,​ рекомендуемый к изменению в процессе интеграции. При обновлении конфигурации по шаблону требуется уделять ему особое внимание. +Содержит персональные процедуры и функции интеграции ​клиента. Единственный модуль,​ рекомендуемый к изменению в процессе интеграции.\\ 
 +При ​новой [[руководства_программиста:​интеграция|интеграции]] необходимо проверить каждую функцию модуля а адаптировать поведение под требуемую логику.\\ 
 +При [[руководства_программиста:​обновление|обновлении]] конфигурации по шаблону требуется уделять ему особое внимание.
 ===== Описание процедур и функций ===== ===== Описание процедур и функций =====
  
Строка 103: Строка 104:
  КонецЕсли;​  КонецЕсли;​
  Возврат Контрагент.Наименование;​  Возврат Контрагент.Наименование;​
 +</1c>
 +++++
 +
 +<1c>
 +//* Получить полное наименование товара
 +Функция НаименованиеТовара(Товар) Экспорт
 +</1c>
 +++++ описание |
 +Функция получает ссылку на товар и возвращает его наименование. Используется при регистрации номенклатуры в Меркурии с наименованием,​ отличающимся от стандартного. Полезно в применении с характеристиками номенклатуры.
 +//​Пример://​
 +<1c>
 + Если Метаданные.Справочники.Найти("​ХарактеристикиНоменклатуры"​)<>​Неопределено И ТипЗнч(Товар)= Тип("​СправочникСсылка.ХарактеристикиНоменклатуры"​) тогда
 + Возврат Товар.Владелец.НаименованиеПолное + " ("​+Товар.Наименование+"​)";​
 + Иначе
 + Возврат Товар.Наименование;​
 + КонецЕсли;​
 </1c> </1c>
 ++++ ++++
Строка 168: Строка 185:
   - запрос также может возвращать поля **Категория**,​ **Единица**,​ **Упаковка**,​ **ДатаВыработки** и прочие поля для заполнения табличных частей сертификата.   - запрос также может возвращать поля **Категория**,​ **Единица**,​ **Упаковка**,​ **ДатаВыработки** и прочие поля для заполнения табличных частей сертификата.
  
-Логика функций:​+//Логика функций:​//
   * **ЗапросТаблицыТоваров** - универсальная функция,​ возвращающая запрос для заполнения таблицы документов в обработке для всех видов документов,​ а также возвращающая таблицы товаров для заполнения **входящих** и **исходящих** сертификатов.   * **ЗапросТаблицыТоваров** - универсальная функция,​ возвращающая запрос для заполнения таблицы документов в обработке для всех видов документов,​ а также возвращающая таблицы товаров для заполнения **входящих** и **исходящих** сертификатов.
   * **ЗапросТаблицыПродукции** и **ЗапросТаблицыСырья** - используются только при заполнении производственных сертификатов.   * **ЗапросТаблицыПродукции** и **ЗапросТаблицыСырья** - используются только при заполнении производственных сертификатов.
Строка 175: Строка 192:
 //​Пример см. в [[компоненты:​шаблон|шаблоне]]. В примере используется один общий запрос,​ незначительно модифицируемый для всех видов документов.//​ //​Пример см. в [[компоненты:​шаблон|шаблоне]]. В примере используется один общий запрос,​ незначительно модифицируемый для всех видов документов.//​
 ++++ ++++
 +<​1c>​ 
 +// получение контрагента документа вместе с ссылкой 
 +Функция ЗапросКонтрагентаДокумента(ВидДокумента) Экспорт 
 +</​1c>​ 
 +++++ описание | 
 +//​Опциональная функция//​. Позволяет использовать в качестве контрагента для сертификатов (поднадзорного) любой реквизит исходного документа с помощью уточнения на языке запросов. Общий пример см. в [[компоненты:​шаблон|шаблоне]]. 
 +++++
 ==== Внешние события ==== ==== Внешние события ====
  
 <1c> <1c>
-//Заполнение любых особых полей сертификата сразу после создания+//Заполнение любых особых полей сертификата сразу после создания 
 +// Ссылка - ссылка на документ учётной базы, выступающий основанием 
 +// ОбъектСертификата - объект заполняемого сертификата
 Процедура ДозаполнитьПоляВетСертификата1С(Ссылка,​ ОбъектСертификата) Экспорт Процедура ДозаполнитьПоляВетСертификата1С(Ссылка,​ ОбъектСертификата) Экспорт
  
Строка 185: Строка 210:
 Функция ДозаполнитьПоляВетСертификата1СПослеЗаписи(Ссылка,​ ОбъектСертификата) Экспорт Функция ДозаполнитьПоляВетСертификата1СПослеЗаписи(Ссылка,​ ОбъектСертификата) Экспорт
  
-//+ Дозаполнение документов при разборе в очереди+//+ Дозаполнение документов при разборе в очереди до регистрации 
 +// имеет смысл при использовании последовательной регистрации
 Процедура ДозаполнитьПоляВетСертификатов1СПоОчереди(СсылкаНаСертификат) Экспорт Процедура ДозаполнитьПоляВетСертификатов1СПоОчереди(СсылкаНаСертификат) Экспорт
  
 //+ При проведении вет сертификата,​ после формирования движений //+ При проведении вет сертификата,​ после формирования движений
 +// позволяет скорректировать подчиненные сертификаты после определения партий
 +// имеет смысл при использовании последовательной регистрации
 +// см. типовые решения "​перемещение",​ "​реализация из производства"​ и "​удалённое производство"​
 Процедура ДействияПослеПроведенияВетСертификата(Объект,​ Движения) Экспорт Процедура ДействияПослеПроведенияВетСертификата(Объект,​ Движения) Экспорт
  
 //+ Перед регистрацией сертификата //+ Перед регистрацией сертификата
 +// выполняется перед регистрацией пачки однотипных сертификатов по документу основанию
 Процедура ДействияПередРегистрациейВетСертификата(Основание,​ ВидДокумента) Экспорт Процедура ДействияПередРегистрациейВетСертификата(Основание,​ ВидДокумента) Экспорт
  
 //+ После успешной регистрации сертификата //+ После успешной регистрации сертификата
 +// позволяет скорректировать подчиненные сертификаты после подтверждения регистрации и получения ГУИДа
 +// имеет смысл при использовании последовательной регистрации
 Процедура ДействияПослеРегистрацииВетСертификата(Ссылка,​ Обработка) Экспорт Процедура ДействияПослеРегистрацииВетСертификата(Ссылка,​ Обработка) Экспорт
 +</1c>
  
-//+ Создание ветеринарного ​документа на основании,​ возвращает количество созданных+==== Активирующие функции ==== 
 + 
 +<​1c>​ 
 +//+ Создание ветеринарных документов на основании,​ возвращает количество созданных ​сертификатов 
 +// позволяет встроиться в процесс для формирования комплексных цепоцек
 Функция СоздатьВетДокиПоОснованию(Обработка,​ Документ,​ ВидДокумента=Неопределено) Экспорт Функция СоздатьВетДокиПоОснованию(Обработка,​ Документ,​ ВидДокумента=Неопределено) Экспорт
 + СписСерт = Обработка.СформироватьОбновитьСертификаты1С(Документ,​ ВидДокумента).Количество();​
 + Возврат СписСерт;​
 +КонецФункции
  
 //+ Регистрация ветеринарного документа по основанию //+ Регистрация ветеринарного документа по основанию
 Процедура ЗарегистрироватьПоОснованию(Обработка,​ ВидДокумента,​ Документ) Экспорт Процедура ЗарегистрироватьПоОснованию(Обработка,​ ВидДокумента,​ Документ) Экспорт
 + Если ВидДокумента.ТипСертификата = Перечисления.АСП_ТипВетСертификата.Входящий Тогда
 + Обработка.ЗарегистрироватьВходящуюПартию(Документ);​
 + ИначеЕсли ВидДокумента.ТипСертификата = Перечисления.АСП_ТипВетСертификата.Исходящий Тогда
 + Обработка.ЗарегистрироватьТранспортнуюПартию(Документ);​
 + ИначеЕсли ВидДокумента.ТипСертификата = Перечисления.АСП_ТипВетСертификата.Производственный Тогда
 + Обработка.ЗарегистрироватьПроизводственнуюПартию(Документ);​
 + ИначеЕсли ВидДокумента.ТипСертификата = Перечисления.АСП_ТипВетСертификата.Инвентаризация Тогда
 + Обработка.ЗарегистрироватьИнвентаризацию(Документ);​
 + КонецЕсли;​
 +КонецПроцедуры
  
 //+ Проведение ветеринарного документа по основанию //+ Проведение ветеринарного документа по основанию
 Процедура ПровестиПоОснованию(Обработка,​ ВидДокумента,​ Документ) Экспорт Процедура ПровестиПоОснованию(Обработка,​ ВидДокумента,​ Документ) Экспорт
 + СписВетДок = АСП_Функции.ПолучитьСписокВетДокументов(Документ);​
 +
 + Для Каждого ВетДок Из СписВетДок Цикл
 + Объект = ВетДок.ПолучитьОбъект();​
 + Объект.Записать(РежимЗаписиДокумента.Проведение,​ РежимПроведенияДокумента.Неоперативный);​
 + КонецЦикла;​
 +КонецПроцедуры
 +</1c>
  
 +==== Расширение интерфейса обработки ====
 +
 +<1c>
 //+ расширения таблицы документов //+ расширения таблицы документов
 Процедура РасширитьТабДокументов(Таб,​ ТабФормы,​ ВидДокумента) Экспорт Процедура РасширитьТабДокументов(Таб,​ ТабФормы,​ ВидДокумента) Экспорт
 +Процедура ЗаполнитьСтрокуТабДокументов(Строка,​ Документ,​ ВидДокумента) Экспорт
 +</1c>
 +++++ описание |
 +Возможность расширить табличную часть выборки документов в обработке программным способом. **Только для обычных форм**.
 +  * **Таб** - таблица значений с данными
 +  * **ТабФормы** - элемент формы для отображения таблицы значений
 +  * **ВидДокумента** - справочник вид сертификата
 +
 +//​Пример://​
 +<1c>
 +// добавление колонки с производимой продукцией
 +Процедура РасширитьТабДокументов(Таб,​ ТабФормы,​ ВидДокумента) Экспорт
 + АСП_Функции.ДобавитьКолонку(Таб,​ ТабФормы,​ 4, "​Продукция",​ Тип("​СправочникСсылка.Номенклатура"​));​
 + ТабФормы.Продукция.Видимость = ВидДокумента.ТипСертификата = Перечисления.АСП_ТипВетСертификата.Производственный;​
 +КонецПроцедуры
  
 Процедура ЗаполнитьСтрокуТабДокументов(Строка,​ Документ,​ ВидДокумента) Экспорт Процедура ЗаполнитьСтрокуТабДокументов(Строка,​ Документ,​ ВидДокумента) Экспорт
 + Если ТипЗнч(Документ) = Тип("​ДокументСсылка.ОтчетПроизводстваЗаСмену"​) И Документ.Продукция.Количество()>​0 Тогда
 + Строка.Продукция = Документ.Продукция[0].Номенклатура;​
 + КонецЕсли;​
 +КонецПроцедуры
 +</1c>
 +++++
  
-// подписки на справочники+==== Синхронизация регистров сведений ==== 
 + 
 +<​1c>​ 
 +// подписка на запись ​справочников, причастных к работе в Меркурии
 Процедура АСП_ЗаписьСправочниковПриЗаписи(Источник,​ Отказ) Экспорт Процедура АСП_ЗаписьСправочниковПриЗаписи(Источник,​ Отказ) Экспорт
 +</1c>
 +++++ описание |
 +Требуется обеспечения целостности данных,​ а именно дополнительных реквизитов Меркурия,​ хранящихся в регистрах сведений,​ а также их частичного автоматического заполнения.
 +//См. пример в [[компоненты:​шаблон|шаблоне]].//​
 +++++
  
 +==== Доступ к обработке ====
 +<1c>
 // Загрузка внешней обработки в параллельный контекст // Загрузка внешней обработки в параллельный контекст
 Функция ПолучитьОбъектОбработки() Экспорт Функция ПолучитьОбъектОбработки() Экспорт
- 
 </1c> </1c>
 +++++ описание |
 +Внешняя обработка содержит транспортный модуль,​ который используется в разных местах интеграции. Для этого необходимо обеспечить подсистеме постоянный доступ к файлу обработки для загрузки и обращения.\\
 +Шаблон содержит несколько возможных решений по реализации данной проблемы.
 +++++
 +