Различия

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

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

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