Асп общие: различия между версиями

Материал из База знаний АО АСП
Перейти к навигации Перейти к поиску
Нет описания правки
Нет описания правки
 
(не показаны 4 промежуточные версии этого же участника)
Строка 6: Строка 6:
==== Выборки по справочникам ====
==== Выборки по справочникам ====


<1c>
<syntaxhighlight lang='1c'>
// Функция, возвращающая запрос для выборки поднадзорных организаций
// Функция, возвращающая запрос для выборки поднадзорных организаций
// Используется при построении динамического отбора и заполнения таблицы организаций в обработке
// Используется при построении динамического отбора и заполнения таблицы организаций в обработке
Функция ЗапросПоднадзорныхОрганизаций(Поместить=Ложь) Экспорт
Функция ЗапросПоднадзорныхОрганизаций(Поместить=Ложь) Экспорт
</1c>
</syntaxhighlight>
++++ описание |
описание |
Должна возвращать запрос с полями <syntaxhighlight lang='bash'>
Должна возвращать запрос с полями '''Ссылка''' и '''Владелец''', где
'Ссылка
</syntaxhighlight>' и <syntaxhighlight lang='bash'>
'Владелец
</syntaxhighlight>', где
* Ссылка используется в качестве поднадзорного
* Ссылка используется в качестве поднадзорного
* Владелец - в качестве хозяйствующего
* Владелец - в качестве хозяйствующего
Параметр <syntaxhighlight lang='bash'>
Параметр '''Поместить''' указывает, должен ли быть помещён запрос в виртуальную таблицу '''Ссылки'''.
'Поместить
</syntaxhighlight>' указывает, должен ли быть помещён запрос в виртуальную таблицу <syntaxhighlight lang='bash'>
'Ссылки
</syntaxhighlight>'.


<syntaxhighlight lang='bash'>
<syntaxhighlight lang='bash'>
Примеры:
Примеры:
</syntaxhighlight>
</syntaxhighlight>
<1c>
<syntaxhighlight lang='1c'>
// Вариант с использованием одного справочника
// Вариант с использованием одного справочника
Возврат ПоместитьЗапрос(
Возврат ПоместитьЗапрос(
Строка 36: Строка 28:
|ИЗ
|ИЗ
| Справочник.Организации КАК Организации", Поместить);
| Справочник.Организации КАК Организации", Поместить);
</1c>
</syntaxhighlight>
<1c>
<syntaxhighlight lang='1c'>
// Вариант с извлечением данных из регистра напрямую в случае множества справочников
// Вариант с извлечением данных из регистра напрямую в случае множества справочников
Возврат ПоместитьЗапрос(
Возврат ПоместитьЗапрос(
Строка 47: Строка 39:
|ГДЕ
|ГДЕ
| АСП_Поднадзорные.Владелец ССЫЛКА Справочник.Организации", Поместить);
| АСП_Поднадзорные.Владелец ССЫЛКА Справочник.Организации", Поместить);
</1c>
</syntaxhighlight>
++++


<1c>
 
<syntaxhighlight lang='1c'>
// Функция, возвращающая запрос для выборки поднадзорных контрагентов
// Функция, возвращающая запрос для выборки поднадзорных контрагентов
// Используется при построении динамического отбора и заполнения таблицы контрагентов в обработке
// Используется при построении динамического отбора и заполнения таблицы контрагентов в обработке
Функция ЗапросПоднадзорныхКонтрагентов(Поместить=Ложь) Экспорт
Функция ЗапросПоднадзорныхКонтрагентов(Поместить=Ложь) Экспорт
</1c>
</syntaxhighlight>
++++ описание |
описание |
Должна возвращать запрос с полями <syntaxhighlight lang='bash'>
Должна возвращать запрос с полями '''Ссылка''' и '''Владелец''', где
'Ссылка
</syntaxhighlight>' и <syntaxhighlight lang='bash'>
'Владелец
</syntaxhighlight>', где
* Ссылка используется в качестве поднадзорного
* Ссылка используется в качестве поднадзорного
* Владелец - в качестве хозяйствующего
* Владелец - в качестве хозяйствующего
Параметр <syntaxhighlight lang='bash'>
Параметр '''Поместить''' указывает, должен ли быть помещён запрос в виртуальную таблицу '''Ссылки'''.
'Поместить
</syntaxhighlight>' указывает, должен ли быть помещён запрос в виртуальную таблицу <syntaxhighlight lang='bash'>
'Ссылки
</syntaxhighlight>'.
<syntaxhighlight lang='bash'>
<syntaxhighlight lang='bash'>
Пример:
Пример:
</syntaxhighlight>
</syntaxhighlight>
<1c>
<syntaxhighlight lang='1c'>
// универсальная выборка из регистра
// универсальная выборка из регистра
Возврат ПоместитьЗапрос(
Возврат ПоместитьЗапрос(
Строка 80: Строка 64:
|ГДЕ
|ГДЕ
| АСП_Поднадзорные.Владелец ССЫЛКА Справочник.Контрагенты", Поместить);
| АСП_Поднадзорные.Владелец ССЫЛКА Справочник.Контрагенты", Поместить);
</1c>
</syntaxhighlight>
++++
 
<1c>
<syntaxhighlight lang='1c'>
// Функция, возвращающая запрос товаров для универсального отбора
// Функция, возвращающая запрос товаров для универсального отбора
// и заполнения таблицы товаров в обработке
// и заполнения таблицы товаров в обработке
Функция ЗапросТоваров(ВидСправочника = Неопределено, Поместить=Ложь) Экспорт
Функция ЗапросТоваров(ВидСправочника = Неопределено, Поместить=Ложь) Экспорт
</1c>
</syntaxhighlight>
++++ описание |
описание |
Запрос должен возвращать одно поле <syntaxhighlight lang='bash'>
Запрос должен возвращать одно поле '''Ссылка'''.
'Ссылка
* '''ВидСправочника''' - название вида справочника 1С, выбранного интерактивно
</syntaxhighlight>'.
* '''Поместить''' - режим помещения запроса в виртуальную таблицу
* <syntaxhighlight lang='bash'>
'ВидСправочника
</syntaxhighlight>' - название вида справочника 1С, выбранного интерактивно
* <syntaxhighlight lang='bash'>
'Поместить
</syntaxhighlight>' - режим помещения запроса в виртуальную таблицу
:!: Для иерархического отображения запрос не должен содержать соединений.
:!: Для иерархического отображения запрос не должен содержать соединений.
<syntaxhighlight lang='bash'>
<syntaxhighlight lang='bash'>
Пример:
Пример:
</syntaxhighlight>
</syntaxhighlight>
<1c>
<syntaxhighlight lang='1c'>
Если ВидСправочника = Неопределено Тогда
Если ВидСправочника = Неопределено Тогда
ВидСправочника = "Номенклатура";
ВидСправочника = "Номенклатура";
Строка 111: Строка 89:
|ИЗ
|ИЗ
| Справочник."+ВидСправочника+" КАК Номенклатура", Поместить);
| Справочник."+ВидСправочника+" КАК Номенклатура", Поместить);
</1c>
</syntaxhighlight>
++++
 


==== Подготовка к ХС/ПС к регистрации ====
==== Подготовка к ХС/ПС к регистрации ====


<1c>
<syntaxhighlight lang='1c'>
// Получить полное наименование
// Получить полное наименование
// для регистрации контрагентов в системе Меркурий
// для регистрации контрагентов в системе Меркурий
Функция НаименованиеПолное(Контрагент) Экспорт
Функция НаименованиеПолное(Контрагент) Экспорт
</1c>
</syntaxhighlight>
++++ описание |
описание |
Функция получает ссылку на контрагента (хозяйствующего или поднадзорного) и возвращает строковое представление.<br/>Используется только в запросах на регистрацию в Меркурии.
Функция получает ссылку на контрагента (хозяйствующего или поднадзорного) и возвращает строковое представление.<br/>Используется только в запросах на регистрацию в Меркурии.
<syntaxhighlight lang='bash'>
<syntaxhighlight lang='bash'>
Пример:
Пример:
</syntaxhighlight>
</syntaxhighlight>
<1c>
<syntaxhighlight lang='1c'>
Если ТипЗнч(Контрагент) = Тип("СправочникСсылка.Организации") ИЛИ ТипЗнч(Контрагент) = Тип("СправочникСсылка.Контрагенты") Тогда
Если ТипЗнч(Контрагент) = Тип("СправочникСсылка.Организации") ИЛИ ТипЗнч(Контрагент) = Тип("СправочникСсылка.Контрагенты") Тогда
Возврат Контрагент.НаименованиеПолное;
Возврат Контрагент.НаименованиеПолное;
КонецЕсли;
КонецЕсли;
Возврат Контрагент.Наименование;
Возврат Контрагент.Наименование;
</1c>
</syntaxhighlight>
++++


<1c>
 
<syntaxhighlight lang='1c'>
//* Получить полное наименование товара
//* Получить полное наименование товара
Функция НаименованиеТовара(Товар) Экспорт
Функция НаименованиеТовара(Товар) Экспорт
</1c>
</syntaxhighlight>
++++ описание |
описание |
Функция получает ссылку на товар и возвращает его наименование. Используется при регистрации номенклатуры в Меркурии с наименованием, отличающимся от стандартного. Полезно в применении с характеристиками номенклатуры.
Функция получает ссылку на товар и возвращает его наименование. Используется при регистрации номенклатуры в Меркурии с наименованием, отличающимся от стандартного. Полезно в применении с характеристиками номенклатуры.
<syntaxhighlight lang='bash'>
<syntaxhighlight lang='bash'>
Пример:
Пример:
</syntaxhighlight>
</syntaxhighlight>
<1c>
<syntaxhighlight lang='1c'>
Если Метаданные.Справочники.Найти("ХарактеристикиНоменклатуры")<>Неопределено И ТипЗнч(Товар)= Тип("СправочникСсылка.ХарактеристикиНоменклатуры") тогда
Если Метаданные.Справочники.Найти("ХарактеристикиНоменклатуры")<>Неопределено И ТипЗнч(Товар)= Тип("СправочникСсылка.ХарактеристикиНоменклатуры") тогда
Возврат Товар.Владелец.НаименованиеПолное + " ("+Товар.Наименование+")";
Возврат Товар.Владелец.НаименованиеПолное + " ("+Товар.Наименование+")";
Строка 149: Строка 127:
Возврат Товар.Наименование;
Возврат Товар.Наименование;
КонецЕсли;
КонецЕсли;
</1c>
</syntaxhighlight>
++++
 


<1c>
<syntaxhighlight lang='1c'>
//* Получить адрес организации/контрагента
//* Получить адрес организации/контрагента
// ТипАдрес = "Юридический" / "Фактический"
// ТипАдрес = "Юридический" / "Фактический"
Строка 159: Строка 137:
//* Установить адрес организации/контрагента
//* Установить адрес организации/контрагента
Процедура УстановитьАдрес(Ссылка, ТипАдреса, Адрес) Экспорт
Процедура УстановитьАдрес(Ссылка, ТипАдреса, Адрес) Экспорт
</1c>
</syntaxhighlight>
++++ описание |
описание |
Функции получения и установки адресов в карточки контрагентов, связанные хозяйствующими и поднадзорными субъектами.
Функции получения и установки адресов в карточки контрагентов, связанные хозяйствующими и поднадзорными субъектами.
* <syntaxhighlight lang='bash'>
* '''Ссылка''' - ссылка на элемент справочника
'Ссылка
* '''ТипАдреса''' - Юридический / Фактический
</syntaxhighlight>' - ссылка на элемент справочника
* '''Адрес''' - новый адрес строкой
* <syntaxhighlight lang='bash'>
'ТипАдреса
</syntaxhighlight>' - Юридический / Фактический
* <syntaxhighlight lang='bash'>
'Адрес
</syntaxhighlight>' - новый адрес строкой
Функция также возвращает адрес строкой.<br/>Используются в интеллектуальном механизме поиска реквизитов для регистрации контрагентов в системе Меркурий.<br/><syntaxhighlight lang='bash'>
Функция также возвращает адрес строкой.<br/>Используются в интеллектуальном механизме поиска реквизитов для регистрации контрагентов в системе Меркурий.<br/><syntaxhighlight lang='bash'>
Пример см. в [[компоненты:шаблон|шаблоне]].
Пример см. в [[компоненты:шаблон|шаблоне]].
</syntaxhighlight>
</syntaxhighlight>
++++


<1c>
 
<syntaxhighlight lang='1c'>
//* функция получения кода ОКПФ, специфичного для конфигурации
//* функция получения кода ОКПФ, специфичного для конфигурации
Функция КодОКПФ(Ссылка) Экспорт
Функция КодОКПФ(Ссылка) Экспорт
</1c>
</syntaxhighlight>
++++ описание |
описание |
Функция возвращает код по ОКПФ по ссылке на элемент справочника хозяйствующего субъекта (Организации, Контрагенты).<br/>Используется для заполнения поля хозяйствующего субъекта для регистрации в Меркурии.<br/>Вызывается только из события <syntaxhighlight lang='bash'>
Функция возвращает код по ОКПФ по ссылке на элемент справочника хозяйствующего субъекта (Организации, Контрагенты).<br/>Используется для заполнения поля хозяйствующего субъекта для регистрации в Меркурии.<br/>Вызывается только из события '''АСП_ЗаписьСправочниковПриЗаписи'''.<br/><syntaxhighlight lang='bash'>
'АСП_ЗаписьСправочниковПриЗаписи
</syntaxhighlight>'.<br/><syntaxhighlight lang='bash'>
Пример см. в [[компоненты:шаблон|шаблоне]].
Пример см. в [[компоненты:шаблон|шаблоне]].
</syntaxhighlight>
</syntaxhighlight>
++++


<1c>
 
<syntaxhighlight lang='1c'>
//* Тип создаваемого или редактируемого хозяйствующего субъекта:
//* Тип создаваемого или редактируемого хозяйствующего субъекта:
//1 - юридическое лицо;
//1 - юридическое лицо;
Строка 194: Строка 164:
//3 - индивидуальный предприниматель.
//3 - индивидуальный предприниматель.
Функция ТипКонтрагента(Ссылка) Экспорт
Функция ТипКонтрагента(Ссылка) Экспорт
</1c>
</syntaxhighlight>
++++ описание |
описание |
Функция возвращает код типа субъекта по ссылке на элемент справочника хозяйствующего субъекта (Организации, Контрагенты).<br/>Используется для заполнения поля хозяйствующего субъекта для регистрации в Меркурии.<br/>Вызывается только из события <syntaxhighlight lang='bash'>
Функция возвращает код типа субъекта по ссылке на элемент справочника хозяйствующего субъекта (Организации, Контрагенты).<br/>Используется для заполнения поля хозяйствующего субъекта для регистрации в Меркурии.<br/>Вызывается только из события '''АСП_ЗаписьСправочниковПриЗаписи'''.<br/><syntaxhighlight lang='bash'>
'АСП_ЗаписьСправочниковПриЗаписи
</syntaxhighlight>'.<br/><syntaxhighlight lang='bash'>
Пример см. в [[компоненты:шаблон|шаблоне]].
Пример см. в [[компоненты:шаблон|шаблоне]].
</syntaxhighlight>
</syntaxhighlight>
++++
 


==== Запросы документов ====
==== Запросы документов ====


<1c>
<syntaxhighlight lang='1c'>
//* Получение таблицы товаров от конфигурации
//* Получение таблицы товаров от конфигурации
Функция ЗапросТаблицыТоваров(ВидДокумента = Неопределено) Экспорт
Функция ЗапросТаблицыТоваров(ВидДокумента = Неопределено) Экспорт
Строка 212: Строка 180:
Функция ЗапросТаблицыОприходования(ВидДокумента = Неопределено) Экспорт
Функция ЗапросТаблицыОприходования(ВидДокумента = Неопределено) Экспорт
Функция ЗапросТаблицыСписания(ВидДокумента = Неопределено) Экспорт
Функция ЗапросТаблицыСписания(ВидДокумента = Неопределено) Экспорт
</1c>
</syntaxhighlight>
++++ описание |
описание |
Функции, возвращающие двухуровневый запрос по документам и табличным частям.<br/>Используется при интерактивном заполнении таблицы документов в обработке, а также при формировании сертификатов.<br/><syntaxhighlight lang='bash'>
Функции, возвращающие двухуровневый запрос по документам и табличным частям.<br/>Используется при интерактивном заполнении таблицы документов в обработке, а также при формировании сертификатов.<br/><syntaxhighlight lang='bash'>
Правила построения запроса:
Правила построения запроса:
</syntaxhighlight>
</syntaxhighlight>
  - запрос должен выбирать ссылки из виртуальной таблицы <syntaxhighlight lang='bash'>
запрос должен выбирать ссылки из виртуальной таблицы '''СсылкиВет''', которая подготавливается заранее динамическим фильтром;
'СсылкиВет
для универсальности выборка может иметь левое соединение с таблицами документа '''РеализацияТоваровУслуг''', который заменится на '''правильный''' для выполнения запроса автоматически;
</syntaxhighlight>', которая подготавливается заранее динамическим фильтром;
запрос должен возвращать поля '''Ссылка''', '''Номенклатура''', '''Количество''', '''КоличествоУпаковок''' и '''Сумма''', сгруппированные по '''Ссылка''';
  - для универсальности выборка может иметь левое соединение с таблицами документа <syntaxhighlight lang='bash'>
запрос также может возвращать поля '''Категория''', '''Единица''', '''Упаковка''', '''ДатаВыработки''' и прочие поля для заполнения табличных частей сертификата.
'РеализацияТоваровУслуг
</syntaxhighlight>', который заменится на __правильный__ для выполнения запроса автоматически;
  - запрос должен возвращать поля <syntaxhighlight lang='bash'>
'Ссылка
</syntaxhighlight>', <syntaxhighlight lang='bash'>
'Номенклатура
</syntaxhighlight>', <syntaxhighlight lang='bash'>
'Количество
</syntaxhighlight>', <syntaxhighlight lang='bash'>
'КоличествоУпаковок
</syntaxhighlight>' и <syntaxhighlight lang='bash'>
'Сумма
</syntaxhighlight>', сгруппированные по <syntaxhighlight lang='bash'>
'Ссылка
</syntaxhighlight>';
  - запрос также может возвращать поля <syntaxhighlight lang='bash'>
'Категория
</syntaxhighlight>', <syntaxhighlight lang='bash'>
'Единица
</syntaxhighlight>', <syntaxhighlight lang='bash'>
'Упаковка
</syntaxhighlight>', <syntaxhighlight lang='bash'>
'ДатаВыработки
</syntaxhighlight>' и прочие поля для заполнения табличных частей сертификата.


<syntaxhighlight lang='bash'>
<syntaxhighlight lang='bash'>
Логика функций:
Логика функций:
</syntaxhighlight>
</syntaxhighlight>
* <syntaxhighlight lang='bash'>
* '''ЗапросТаблицыТоваров''' - универсальная функция, возвращающая запрос для заполнения таблицы документов в обработке для всех видов документов, а также возвращающая таблицы товаров для заполнения '''входящих''' и '''исходящих''' сертификатов.
'ЗапросТаблицыТоваров
* '''ЗапросТаблицыПродукции''' и '''ЗапросТаблицыСырья''' - используются только при заполнении производственных сертификатов.
</syntaxhighlight>' - универсальная функция, возвращающая запрос для заполнения таблицы документов в обработке для всех видов документов, а также возвращающая таблицы товаров для заполнения <syntaxhighlight lang='bash'>
* '''ЗапросТаблицыОприходования''' и '''ЗапросТаблицыСписания''' - используются только при заполнении инвентаризаций.
'входящих
</syntaxhighlight>' и <syntaxhighlight lang='bash'>
'исходящих
</syntaxhighlight>' сертификатов.
* <syntaxhighlight lang='bash'>
'ЗапросТаблицыПродукции
</syntaxhighlight>' и <syntaxhighlight lang='bash'>
'ЗапросТаблицыСырья
</syntaxhighlight>' - используются только при заполнении производственных сертификатов.
* <syntaxhighlight lang='bash'>
'ЗапросТаблицыОприходования
</syntaxhighlight>' и <syntaxhighlight lang='bash'>
'ЗапросТаблицыСписания
</syntaxhighlight>' - используются только при заполнении инвентаризаций.


<syntaxhighlight lang='bash'>
<syntaxhighlight lang='bash'>
Пример см. в [[компоненты:шаблон|шаблоне]]. В примере используется один общий запрос, незначительно модифицируемый для всех видов документов.
Пример см. в [[компоненты:шаблон|шаблоне]]. В примере используется один общий запрос, незначительно модифицируемый для всех видов документов.
</syntaxhighlight>
</syntaxhighlight>
++++
 
<1c>
<syntaxhighlight lang='1c'>
// получение контрагента документа вместе с ссылкой
// получение контрагента документа вместе с ссылкой
Функция ЗапросКонтрагентаДокумента(ВидДокумента) Экспорт
Функция ЗапросКонтрагентаДокумента(ВидДокумента) Экспорт
</1c>
</syntaxhighlight>
++++ описание |
описание |
<syntaxhighlight lang='bash'>
<syntaxhighlight lang='bash'>
Опциональная функция
Опциональная функция
</syntaxhighlight>. Позволяет использовать в качестве контрагента для сертификатов (поднадзорного) любой реквизит исходного документа с помощью уточнения на языке запросов. Общий пример см. в [[компоненты:шаблон|шаблоне]].
</syntaxhighlight>. Позволяет использовать в качестве контрагента для сертификатов (поднадзорного) любой реквизит исходного документа с помощью уточнения на языке запросов. Общий пример см. в [[компоненты:шаблон|шаблоне]].
++++
 
==== Внешние события ====
==== Внешние события ====


<1c>
<syntaxhighlight lang='1c'>
//+ Заполнение любых особых полей сертификата сразу после создания
//+ Заполнение любых особых полей сертификата сразу после создания
// Ссылка - ссылка на документ учётной базы, выступающий основанием
// Ссылка - ссылка на документ учётной базы, выступающий основанием
Строка 309: Строка 239:
// имеет смысл при использовании последовательной регистрации
// имеет смысл при использовании последовательной регистрации
Процедура ДействияПослеРегистрацииВетСертификата(Ссылка, Обработка) Экспорт
Процедура ДействияПослеРегистрацииВетСертификата(Ссылка, Обработка) Экспорт
</1c>
</syntaxhighlight>


==== Активирующие функции ====
==== Активирующие функции ====


<1c>
<syntaxhighlight lang='1c'>
//+ Создание ветеринарных документов на основании, возвращает количество созданных сертификатов
//+ Создание ветеринарных документов на основании, возвращает количество созданных сертификатов
// позволяет встроиться в процесс для формирования комплексных цепоцек
// позволяет встроиться в процесс для формирования комплексных цепоцек
Строка 343: Строка 273:
КонецЦикла;
КонецЦикла;
КонецПроцедуры
КонецПроцедуры
</1c>
</syntaxhighlight>


==== Расширение интерфейса обработки ====
==== Расширение интерфейса обработки ====


<1c>
<syntaxhighlight lang='1c'>
//+ расширения таблицы документов
//+ расширения таблицы документов
Процедура РасширитьТабДокументов(Таб, ТабФормы, ВидДокумента) Экспорт
Процедура РасширитьТабДокументов(Таб, ТабФормы, ВидДокумента) Экспорт
Процедура ЗаполнитьСтрокуТабДокументов(Строка, Документ, ВидДокумента) Экспорт
Процедура ЗаполнитьСтрокуТабДокументов(Строка, Документ, ВидДокумента) Экспорт
</1c>
</syntaxhighlight>
++++ описание |
описание |
Возможность расширить табличную часть выборки документов в обработке программным способом. <syntaxhighlight lang='bash'>
Возможность расширить табличную часть выборки документов в обработке программным способом. '''Только для обычных форм'''.
'Только для обычных форм
* '''Таб''' - таблица значений с данными
</syntaxhighlight>'.
* '''ТабФормы''' - элемент формы для отображения таблицы значений
* <syntaxhighlight lang='bash'>
* '''ВидДокумента''' - справочник вид сертификата
'Таб
</syntaxhighlight>' - таблица значений с данными
* <syntaxhighlight lang='bash'>
'ТабФормы
</syntaxhighlight>' - элемент формы для отображения таблицы значений
* <syntaxhighlight lang='bash'>
'ВидДокумента
</syntaxhighlight>' - справочник вид сертификата


<syntaxhighlight lang='bash'>
<syntaxhighlight lang='bash'>
Пример:
Пример:
</syntaxhighlight>
</syntaxhighlight>
<1c>
<syntaxhighlight lang='1c'>
// добавление колонки с производимой продукцией
// добавление колонки с производимой продукцией
Процедура РасширитьТабДокументов(Таб, ТабФормы, ВидДокумента) Экспорт
Процедура РасширитьТабДокументов(Таб, ТабФормы, ВидДокумента) Экспорт
Строка 381: Строка 303:
КонецЕсли;
КонецЕсли;
КонецПроцедуры
КонецПроцедуры
</1c>
</syntaxhighlight>
++++
 


==== Синхронизация регистров сведений ====
==== Синхронизация регистров сведений ====


<1c>
<syntaxhighlight lang='1c'>
// подписка на запись справочников, причастных к работе в Меркурии
// подписка на запись справочников, причастных к работе в Меркурии
Процедура АСП_ЗаписьСправочниковПриЗаписи(Источник, Отказ) Экспорт
Процедура АСП_ЗаписьСправочниковПриЗаписи(Источник, Отказ) Экспорт
</1c>
</syntaxhighlight>
++++ описание |
описание |
Требуется обеспечения целостности данных, а именно дополнительных реквизитов Меркурия, хранящихся в регистрах сведений, а также их частичного автоматического заполнения.
Требуется обеспечения целостности данных, а именно дополнительных реквизитов Меркурия, хранящихся в регистрах сведений, а также их частичного автоматического заполнения.
<syntaxhighlight lang='bash'>
<syntaxhighlight lang='bash'>
См. пример в [[компоненты:шаблон|шаблоне]].
См. пример в [[компоненты:шаблон|шаблоне]].
</syntaxhighlight>
</syntaxhighlight>
++++
 


==== Доступ к обработке ====
==== Доступ к обработке ====
<1c>
<syntaxhighlight lang='1c'>
// Загрузка внешней обработки в параллельный контекст
// Загрузка внешней обработки в параллельный контекст
Функция ПолучитьОбъектОбработки() Экспорт
Функция ПолучитьОбъектОбработки() Экспорт
</1c>
</syntaxhighlight>
++++ описание |
описание |
Внешняя обработка содержит транспортный модуль, который используется в разных местах интеграции. Для этого необходимо обеспечить подсистеме постоянный доступ к файлу обработки для загрузки и обращения.<br/>Шаблон содержит несколько возможных решений по реализации данной проблемы.
Внешняя обработка содержит транспортный модуль, который используется в разных местах интеграции. Для этого необходимо обеспечить подсистеме постоянный доступ к файлу обработки для загрузки и обращения.<br/>Шаблон содержит несколько возможных решений по реализации данной проблемы.
++++
 
[[Category:Компоненты]]
[[Category:Компоненты]]
<vote type=1 />

Текущая версия от 13:04, 2 апреля 2025

Общий модуль АСП_Общие

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

Описание процедур и функций

Выборки по справочникам

// Функция, возвращающая запрос для выборки поднадзорных организаций
// Используется при построении динамического отбора и заполнения таблицы организаций в обработке
Функция ЗапросПоднадзорныхОрганизаций(Поместить=Ложь) Экспорт
описание |

Должна возвращать запрос с полями Ссылка и Владелец, где

  • Ссылка используется в качестве поднадзорного
  • Владелец - в качестве хозяйствующего

Параметр Поместить указывает, должен ли быть помещён запрос в виртуальную таблицу Ссылки.

Примеры:
// Вариант с использованием одного справочника
	Возврат ПоместитьЗапрос(
		"ВЫБРАТЬ
		|	Организации.Ссылка,
		|	Организации.Ссылка КАК Владелец
		|ИЗ
		|	Справочник.Организации КАК Организации", Поместить);
// Вариант с извлечением данных из регистра напрямую в случае множества справочников
	Возврат ПоместитьЗапрос(
		"ВЫБРАТЬ
		|	АСП_Поднадзорные.Ссылка,
		|	АСП_Поднадзорные.Владелец
		|ИЗ
		|	РегистрСведений.АСП_Поднадзорные КАК АСП_Поднадзорные
		|ГДЕ
		|	АСП_Поднадзорные.Владелец ССЫЛКА Справочник.Организации", Поместить);


// Функция, возвращающая запрос для выборки поднадзорных контрагентов
// Используется при построении динамического отбора и заполнения таблицы контрагентов в обработке
Функция ЗапросПоднадзорныхКонтрагентов(Поместить=Ложь) Экспорт
описание |

Должна возвращать запрос с полями Ссылка и Владелец, где

  • Ссылка используется в качестве поднадзорного
  • Владелец - в качестве хозяйствующего

Параметр Поместить указывает, должен ли быть помещён запрос в виртуальную таблицу Ссылки.

Пример:
// универсальная выборка из регистра
	Возврат ПоместитьЗапрос(
		"ВЫБРАТЬ
		|	*
		|ИЗ
		|	РегистрСведений.АСП_Поднадзорные КАК АСП_Поднадзорные
		|ГДЕ
		|	АСП_Поднадзорные.Владелец ССЫЛКА Справочник.Контрагенты", Поместить);
	
// Функция, возвращающая запрос товаров для универсального отбора
// и заполнения таблицы товаров в обработке
Функция ЗапросТоваров(ВидСправочника = Неопределено, Поместить=Ложь) Экспорт
описание |

Запрос должен возвращать одно поле Ссылка.

  • ВидСправочника - название вида справочника 1С, выбранного интерактивно
  • Поместить - режим помещения запроса в виртуальную таблицу
!: Для иерархического отображения запрос не должен содержать соединений.
Пример:
	Если ВидСправочника = Неопределено Тогда
		ВидСправочника = "Номенклатура";
	КонецЕсли;
	Возврат ПоместитьЗапрос(
		"ВЫБРАТЬ
		|	Номенклатура.Ссылка
		|	Номенклатура.Наименование КАК Представление
		|ИЗ
		|	Справочник."+ВидСправочника+" КАК Номенклатура", Поместить);


Подготовка к ХС/ПС к регистрации

// Получить полное наименование
// для регистрации контрагентов в системе Меркурий
Функция НаименованиеПолное(Контрагент) Экспорт
описание |

Функция получает ссылку на контрагента (хозяйствующего или поднадзорного) и возвращает строковое представление.
Используется только в запросах на регистрацию в Меркурии.

Пример:
	Если ТипЗнч(Контрагент) = Тип("СправочникСсылка.Организации") ИЛИ ТипЗнч(Контрагент) = Тип("СправочникСсылка.Контрагенты") Тогда
		Возврат Контрагент.НаименованиеПолное;
	КонецЕсли;
	Возврат Контрагент.Наименование;


//* Получить полное наименование товара
Функция НаименованиеТовара(Товар) Экспорт
описание |

Функция получает ссылку на товар и возвращает его наименование. Используется при регистрации номенклатуры в Меркурии с наименованием, отличающимся от стандартного. Полезно в применении с характеристиками номенклатуры.

Пример:
	Если Метаданные.Справочники.Найти("ХарактеристикиНоменклатуры")<>Неопределено И ТипЗнч(Товар)= Тип("СправочникСсылка.ХарактеристикиНоменклатуры") тогда
		Возврат Товар.Владелец.НаименованиеПолное + " ("+Товар.Наименование+")";
	Иначе
		Возврат Товар.Наименование;	
	КонецЕсли;


//* Получить адрес организации/контрагента
// ТипАдрес = "Юридический" / "Фактический"
Функция ПолучитьАдрес(Объект, ТипАдреса) Экспорт

//* Установить адрес организации/контрагента
Процедура УстановитьАдрес(Ссылка, ТипАдреса, Адрес) Экспорт
описание |

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

  • Ссылка - ссылка на элемент справочника
  • ТипАдреса - Юридический / Фактический
  • Адрес - новый адрес строкой

Функция также возвращает адрес строкой.
Используются в интеллектуальном механизме поиска реквизитов для регистрации контрагентов в системе Меркурий.

Пример см. в [[компоненты:шаблон|шаблоне]].


//* функция получения кода ОКПФ, специфичного для конфигурации
Функция КодОКПФ(Ссылка) Экспорт
описание |

Функция возвращает код по ОКПФ по ссылке на элемент справочника хозяйствующего субъекта (Организации, Контрагенты).
Используется для заполнения поля хозяйствующего субъекта для регистрации в Меркурии.
Вызывается только из события АСП_ЗаписьСправочниковПриЗаписи.

Пример см. в [[компоненты:шаблон|шаблоне]].


//* Тип создаваемого или редактируемого хозяйствующего субъекта:
//1 - юридическое лицо;
//2 - физическое лицо;
//3 - индивидуальный предприниматель.
Функция ТипКонтрагента(Ссылка) Экспорт
описание |

Функция возвращает код типа субъекта по ссылке на элемент справочника хозяйствующего субъекта (Организации, Контрагенты).
Используется для заполнения поля хозяйствующего субъекта для регистрации в Меркурии.
Вызывается только из события АСП_ЗаписьСправочниковПриЗаписи.

Пример см. в [[компоненты:шаблон|шаблоне]].


Запросы документов

//* Получение таблицы товаров от конфигурации
Функция ЗапросТаблицыТоваров(ВидДокумента = Неопределено) Экспорт
Функция ЗапросТаблицыПродукции(ВидДокумента = Неопределено) Экспорт
Функция ЗапросТаблицыСырья(ВидДокумента = Неопределено) Экспорт
Функция ЗапросТаблицыОприходования(ВидДокумента = Неопределено) Экспорт
Функция ЗапросТаблицыСписания(ВидДокумента = Неопределено) Экспорт
описание |

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

Правила построения запроса:
  1. запрос должен выбирать ссылки из виртуальной таблицы СсылкиВет, которая подготавливается заранее динамическим фильтром;
  2. для универсальности выборка может иметь левое соединение с таблицами документа РеализацияТоваровУслуг, который заменится на правильный для выполнения запроса автоматически;
  3. запрос должен возвращать поля Ссылка, Номенклатура, Количество, КоличествоУпаковок и Сумма, сгруппированные по Ссылка;
  4. запрос также может возвращать поля Категория, Единица, Упаковка, ДатаВыработки и прочие поля для заполнения табличных частей сертификата.
Логика функций:
  • ЗапросТаблицыТоваров - универсальная функция, возвращающая запрос для заполнения таблицы документов в обработке для всех видов документов, а также возвращающая таблицы товаров для заполнения входящих и исходящих сертификатов.
  • ЗапросТаблицыПродукции и ЗапросТаблицыСырья - используются только при заполнении производственных сертификатов.
  • ЗапросТаблицыОприходования и ЗапросТаблицыСписания - используются только при заполнении инвентаризаций.
Пример см. в [[компоненты:шаблон|шаблоне]]. В примере используется один общий запрос, незначительно модифицируемый для всех видов документов.
// получение контрагента документа вместе с ссылкой
Функция ЗапросКонтрагентаДокумента(ВидДокумента) Экспорт
описание |
Опциональная функция

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

Внешние события

//+ Заполнение любых особых полей сертификата сразу после создания
// Ссылка - ссылка на документ учётной базы, выступающий основанием
// ОбъектСертификата - объект заполняемого сертификата
Процедура ДозаполнитьПоляВетСертификата1С(Ссылка, ОбъектСертификата) Экспорт

//+ Заполнение любых особых полей сертификата сразу после записи
Функция ДозаполнитьПоляВетСертификата1СПослеЗаписи(Ссылка, ОбъектСертификата) Экспорт

//+ Дозаполнение документов при разборе в очереди до регистрации
// имеет смысл при использовании последовательной регистрации
Процедура ДозаполнитьПоляВетСертификатов1СПоОчереди(СсылкаНаСертификат) Экспорт

//+ При проведении вет сертификата, после формирования движений
// позволяет скорректировать подчиненные сертификаты после определения партий
// имеет смысл при использовании последовательной регистрации
// см. типовые решения "перемещение", "реализация из производства" и "удалённое производство"
Процедура ДействияПослеПроведенияВетСертификата(Объект, Движения) Экспорт

//+ Перед регистрацией сертификата
// выполняется перед регистрацией пачки однотипных сертификатов по документу основанию
Процедура ДействияПередРегистрациейВетСертификата(Основание, ВидДокумента) Экспорт

//+ После успешной регистрации сертификата
// позволяет скорректировать подчиненные сертификаты после подтверждения регистрации и получения ГУИДа
// имеет смысл при использовании последовательной регистрации
Процедура ДействияПослеРегистрацииВетСертификата(Ссылка, Обработка) Экспорт

Активирующие функции

//+ Создание ветеринарных документов на основании, возвращает количество созданных сертификатов
// позволяет встроиться в процесс для формирования комплексных цепоцек
Функция СоздатьВетДокиПоОснованию(Обработка, Документ, ВидДокумента=Неопределено) Экспорт
	СписСерт = Обработка.СформироватьОбновитьСертификаты1С(Документ, ВидДокумента).Количество();
	Возврат СписСерт;
КонецФункции

//+ Регистрация ветеринарного документа по основанию
Процедура ЗарегистрироватьПоОснованию(Обработка, ВидДокумента, Документ) Экспорт
	Если ВидДокумента.ТипСертификата = Перечисления.АСП_ТипВетСертификата.Входящий Тогда
		Обработка.ЗарегистрироватьВходящуюПартию(Документ);
	ИначеЕсли ВидДокумента.ТипСертификата = Перечисления.АСП_ТипВетСертификата.Исходящий Тогда
		Обработка.ЗарегистрироватьТранспортнуюПартию(Документ);
	ИначеЕсли ВидДокумента.ТипСертификата = Перечисления.АСП_ТипВетСертификата.Производственный Тогда
		Обработка.ЗарегистрироватьПроизводственнуюПартию(Документ);
	ИначеЕсли ВидДокумента.ТипСертификата = Перечисления.АСП_ТипВетСертификата.Инвентаризация Тогда
		Обработка.ЗарегистрироватьИнвентаризацию(Документ);
	КонецЕсли;
КонецПроцедуры

//+ Проведение ветеринарного документа по основанию
Процедура ПровестиПоОснованию(Обработка, ВидДокумента, Документ) Экспорт
	СписВетДок = АСП_Функции.ПолучитьСписокВетДокументов(Документ);
		
	Для Каждого ВетДок Из СписВетДок Цикл
		Объект = ВетДок.ПолучитьОбъект();
		Объект.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
	КонецЦикла;
КонецПроцедуры

Расширение интерфейса обработки

//+ расширения таблицы документов
Процедура РасширитьТабДокументов(Таб, ТабФормы, ВидДокумента) Экспорт
Процедура ЗаполнитьСтрокуТабДокументов(Строка, Документ, ВидДокумента) Экспорт
описание |

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

  • Таб - таблица значений с данными
  • ТабФормы - элемент формы для отображения таблицы значений
  • ВидДокумента - справочник вид сертификата
Пример:
// добавление колонки с производимой продукцией
Процедура РасширитьТабДокументов(Таб, ТабФормы, ВидДокумента) Экспорт
	АСП_Функции.ДобавитьКолонку(Таб, ТабФормы, 4, "Продукция", Тип("СправочникСсылка.Номенклатура"));
	ТабФормы.Продукция.Видимость = ВидДокумента.ТипСертификата = Перечисления.АСП_ТипВетСертификата.Производственный;
КонецПроцедуры

Процедура ЗаполнитьСтрокуТабДокументов(Строка, Документ, ВидДокумента) Экспорт
	Если ТипЗнч(Документ) = Тип("ДокументСсылка.ОтчетПроизводстваЗаСмену") И Документ.Продукция.Количество()>0 Тогда
		Строка.Продукция = Документ.Продукция[0].Номенклатура;
	КонецЕсли;
КонецПроцедуры


Синхронизация регистров сведений

// подписка на запись справочников, причастных к работе в Меркурии
Процедура АСП_ЗаписьСправочниковПриЗаписи(Источник, Отказ) Экспорт
описание |

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

См. пример в [[компоненты:шаблон|шаблоне]].


Доступ к обработке

// Загрузка внешней обработки в параллельный контекст
Функция ПолучитьОбъектОбработки() Экспорт
описание |

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

0.00
(0 голосов)