Настройка внешней обработки СБИС для 1С 8.х — различия между версиями
(→Выбор документов (запрос к базе)) |
(→Файлы настроек (инишки)) |
||
Строка 69: | Строка 69: | ||
==Файлы настроек (инишки)== | ==Файлы настроек (инишки)== | ||
− | У 1С есть множество разнообразных конфигураций, которые могут заметно отличаться друг от друга по способу хранения данных. Для того, чтобы не делать отдельную обработку под каждую конфигурацию, или не делать кучу условий внутри одной обработки, мы используем файлы настроек, которые говорят обработке, где в текущей конфигурации | + | У 1С есть множество разнообразных конфигураций, которые могут заметно отличаться друг от друга по способу хранения данных. Для того, чтобы не делать отдельную обработку под каждую конфигурацию, или не делать кучу условий внутри одной обработки, мы используем файлы настроек, которые говорят обработке, где в текущей конфигурации хранится необходимое значение. |
Файлы настроек, это xml файлы определенного формата. По старой традиции мы их называем инишками (в внешней обработке первой версии, это были ini файлы). | Файлы настроек, это xml файлы определенного формата. По старой традиции мы их называем инишками (в внешней обработке первой версии, это были ini файлы). | ||
− | Для каждой конфигурации делается отдельный набор инишек. Для наиболее популярных конфигураций готовые наборы инишек (стандартные) | + | Для каждой конфигурации делается отдельный набор инишек. Для наиболее популярных конфигураций готовые наборы инишек (стандартные) уже включены в обработку. |
Если обработка при запуске определила, что у Вас одна из поддерживаемых версий 1С, то она автоматически установит нужный набор инишек. | Если обработка при запуске определила, что у Вас одна из поддерживаемых версий 1С, то она автоматически установит нужный набор инишек. | ||
Строка 82: | Строка 82: | ||
* [[#Файл настроек конфигурации|Файл настроек конфигурации]] | * [[#Файл настроек конфигурации|Файл настроек конфигурации]] | ||
* [[#Файлы настроек реестров Продажа / Покупка|Файлы настроек реестров Продажа / Покупка]] | * [[#Файлы настроек реестров Продажа / Покупка|Файлы настроек реестров Продажа / Покупка]] | ||
− | * [[#Файлы настроек загрузки | + | * [[#Файлы настроек загрузки|Файлы настроек загрузки]] |
===Файл настроек конфигурации=== | ===Файл настроек конфигурации=== | ||
Строка 101: | Строка 101: | ||
====Структура файла==== | ====Структура файла==== | ||
Содержит плоским списком параметры конфигурации, которые необходимы для работы обработки: | Содержит плоским списком параметры конфигурации, которые необходимы для работы обработки: | ||
+ | |||
+ | {| class="wikitable" | ||
+ | {{Шаблон:ШапкаТаблицыОписанияФормата|}} | ||
+ | {{Шаблон:СтрокаТаблицыОписанияФормата | ||
+ | | Название=Справочник где хранится информация по Нашим организациям | ||
+ | | Код=Организации| Тип=С | Формат=|Признак=О | ||
+ | | Комментарий= | ||
+ | }} | ||
+ | {{Шаблон:СтрокаТаблицыОписанияФормата | ||
+ | | Название=Справочник где хранится информация по Нашим организациям | ||
+ | | Код=Организации| Тип=С | Формат=|Признак=О | ||
+ | | Комментарий= | ||
+ | }} | ||
Организации - Справочник Организации | Организации - Справочник Организации |
Версия 12:58, 24 марта 2015
Содержание
- 1 Общее описание
- 2 Состав обработки
- 3 Основные принципы настройки
- 4 Первый запуск обработки
- 5 Файлы настроек (инишки)
- 6 Описание параметров в файлах настроек
- 7 Исправление ошибок в настройках
- 8 Настройка
Общее описание
Внешняя обработка обмена электронными документами для 1С позволяет выгружать файлы документов реализации и актов сверки взаиморасчетов для последующей отправки их контрагентам, а также загружать файлы, присланные контрагентами. Все потребительские настройки выведены в интерфейс обработки, здесь рассматриваются вопросы адаптации внешней обработки под нестандартные конфигурации или особые пожелания клиентов.
Почему возникает необходимость настройки?
Конфигурации 1С зачастую изменяются пользователями, в результате таблицы, поля, предусмотренные в типовой конфигурации, могут называться по-другому, или вообще отсутствовать.
Что можно настраивать в внешней обработке?
Что можно настраивать | Уровень знаний |
---|---|
Отправка документов | |
Добавление не поддерживаемого реестра документов в раздел Продажа | Средний |
Содержание реестров документов в раздела Продажа | Средний |
Список документов 1С которые необходимы для формирования одного пакета документов | Средний |
Параметры фильтрации списка документов для каждого реестра | Продвинутый |
Какие электронные документы будут сформированы из документа 1С | Средний |
Изменить источники данных для реквизитов электронных документов | Начальный |
Добавить новые реквизиты в стандартные электронные документы | Начальный |
Описать условия заполнения реквизитов электронных документов | Продвинутый |
Описать условия формирования пакета документов | Продвинутый |
Добавить к пакету документов не формализованный xls или pdf документ сформированный из макета документа 1С | Средний |
Загрузка документов | |
Определить какие электронные документы можно загружать в 1С | Средний |
Определить какие документы 1С можно создать из электронного документа | Средний |
Определить какие реквизиты документа 1С будут заполнены | Начальный |
Описать условия заполнения реквизитов документа 1С | Продвинутый |
Состав обработки
Обработка состоит из одного файла:
- для толстого клиента ....
- для управляемых форм ....
Файл обработки при запуске распаковывает на диск:
- ActiveX компонент который отвечает за взаимодействие с СБИС через https
- Конфигурационные XML файлы описывающие источники данных необходимые для работы обработки.
Обработка может быть дополнена пользовательской обработкой ВнешниеФункции_Клиент.epf.
Основные принципы настройки
- Код самой обработки ни при каких условиях не изменяется.
- Конфигурационные файлы выгружаемые обработкой ни при каких условиях не изменяются.
- Вся настройка производится в пользовательских конфигурационных файлах путем переопределения параметров, либо добавления новых.
- При необходимости написать функцию для получения какого либо значения или изменения алгоритма выгрузки создается пользовательская обработка "ВнешниеФункции_Клиент.epf" в которой переопределяются имеющихся функции или создаются новые. Обработка "ВнешниеФункции_Клиент.epf" должна лежать в каталоге настроек.
Первый запуск обработки
- Запустить 1С. Добавить обработку в список дополнительных внешних обработок. Для этого заходим в меню Сервис/Дополнительные отчеты и обработки/Дополнительные внешние обработки. В открывшемся окне нажимаем добавить и выбираем файл обработки.
- Запустить обработку.
- При запуске обработка сама попытается найти каталог с ini-файлами для данной конфигурации и заполнить поле «Каталог настроек». Если после открытия это поле осталось пустым, то необходимо вручную выбрать каталог с настройками, соответствующими конфигурации 1С.
В результате на обработке появятся вкладки «Реализация», «Оказание услуг», «Взаиморасчеты», «Поступление» (или часть из них в зависимости от типа и версии конфигурации). Если конфигурация клиента нестандартная в Служебных сообщениях появится список ошибок – говорящих о том, что в базе данных нет каких-то полей или они заданы неверно.
- Настроить каталог обмена на ту же папку, что и СБиС Коннект.
Файлы настроек (инишки)
У 1С есть множество разнообразных конфигураций, которые могут заметно отличаться друг от друга по способу хранения данных. Для того, чтобы не делать отдельную обработку под каждую конфигурацию, или не делать кучу условий внутри одной обработки, мы используем файлы настроек, которые говорят обработке, где в текущей конфигурации хранится необходимое значение.
Файлы настроек, это xml файлы определенного формата. По старой традиции мы их называем инишками (в внешней обработке первой версии, это были ini файлы).
Для каждой конфигурации делается отдельный набор инишек. Для наиболее популярных конфигураций готовые наборы инишек (стандартные) уже включены в обработку.
Если обработка при запуске определила, что у Вас одна из поддерживаемых версий 1С, то она автоматически установит нужный набор инишек.
Стандартные инишки автоматически обновляются вместе с обработкой, именно по этому их нельзя редактировать. Для внесения исправлений в стандартные инишки реализован механизм Пользовательских файлов настроек (пользовательских инишек). Если кратко, то при каждом запуске обработки содержимое пользовательской инишки накладывается сверху на стандартную.
Как было сказано ранее, для каждой конфигурации делается отдельный набор файлов настроек. Данный набор состоит из:
Файл настроек конфигурации
В данном файле описаны общие параметры, необходимые для работы обработки
Имя файла
Название файла формируется по шаблону «ВО82_[Код конфигурации]_Конфигурация.sbis3.xml» Например для Бухгалтерии 2.0 это будет ВО2_БУХ2_Конфигурация.sbis3.xml
Коды типовых конфигураций поддерживаемых обработкой:
- БУХ1 - Бухгалтерия предприятия 1.6
- БУХ2 - Бухгалтерия предприятия 2.0
- БУХ3 - Бухгалтерия предприятия 3.0
- УТ10 - Управление торговлей 10.х
- УТ11 - Управление торговлей 11.х
- УПП - Управление производственным предприятием 1
- КА - Комплексная автоматизация
- БГУ - Бухгалтерия госучреждений 1
Структура файла
Содержит плоским списком параметры конфигурации, которые необходимы для работы обработки:
Сокращенное наименование (код) элемента |
Наименование элемента | Признак типа элемента |
Формат элемента |
Признак обязательности элемента |
Дополнительная информация |
---|---|---|---|---|---|
Организации | Справочник где хранится информация по Нашим организациям | С | О | ||
Организации | Справочник где хранится информация по Нашим организациям | С | О |
Организации - Справочник Организации Файлы настроек реестров Продажа / ПокупкаДанные файлы предназначены для выгрузки документов из 1С в электронном виде и отправки их контрагентам. Имя файлаНазвание файла формируется по шаблону «ВО82_[Код конфигурации]_[Имя документа].sbis3.xml». Например для Реализации товаров и услуг в Бухгалтерии 2.0 это будет ВО82_БУХ2_РеализацияТоваровУслуг.sbis3.xml Структура файла
Файлы настроек загрузки для каждого типа электронного документаДанные файлы предназначены для загрузки полученных электронных документов в 1С. Имя файлаНазвание файла формируется по шаблону «ВО82_[Код конфигурации]_[КодФормата]_[ВерсияФормата].sbis3.xml». Например для счет-фактуры загружаемой в Бухгалтерию 2.0 это будет ВО82_БУХ2_СчФктр_3_01.sbis3.xml Структура файла
Описание параметров в файлах настроекПрямое обращение к данным из базы<Документ>Документ.РеализацияТоваровУслуг</Документ> Документ.РеализацияТоваровУслуг – обращение к данным из базы Обращение к данным через ранее определенную переменную<Документ_Номер>[Документ].Номер</Документ_Номер> [Документ] – использование ранее предопределенной переменной Выбор документов (запрос к базе)Описать логику запроса - что должно получиться в результате... Выбор документов из базы выполняется с помощью запроса. Текст запроса прописывается в параметр <ЗапросСпискаДокументов>, например: <ЗапросСпискаДокументов>'ВЫБРАТЬ РАЗРЕШЕННЫЕ
ПОМЕСТИТЬ ВТ_Реализация ИЗ
ГДЕ
ВЫБРАТЬ
ИЗ
ГДЕ
ОБЪЕДИНИТЬ ВЫБРАТЬ
ИЗ
УПОРЯДОЧИТЬ ПО
Текст запроса формируется по правилам 1С. Назначения блоков:
Результатом запроса является таблица, с определенным набором полей. Полученная таблица отображается в обработке в реестрах разделов Продажа и Покупка. Запросом определяется состав документов, отправляемых контрагенту одним комплектом. В приведенном примере в один комплект попадают 3 документа - Реализация товаров и услуг, Счет на оплату покупателю и Счет-фактура выданный. Обращение к данным через функцию, описанную в обработке<ТаблДок_Цена>{сбисВычислитьЦену()}</ТаблДок_Цена> сбисВычислитьЦену— имя функции, она описана в модуле формы "РаботаСДокументами1С" внешней обработки. Функции, вызываемые из файла настроек, всегда имеют один параметр Контекст - это структура, содержащая все ранее вычисленные параметры данного файла настроек. При необходимости можно переопределить данную функцию под клиента. Для этого создается внешняя обработка "ВнешниеФункции_Клиент.epf", в ней создается форма "РаботаСДокументами1С" и в модуле этой формы описывается указанная функция. Обращение к данным через строковые константы<Файл_Формат>'ЭДОНакл'</Файл_Формат> Строковая константа заключается в одинарные кавычки Атрибуты в файлах настроекАтрибут "Имя" используется для именования множественных узлов. Например, <мСторона Имя="Грузоотправитель">. Атрибут "Формат" используется для приведения значения параметра к определенному формату. Например, запись <ТаблДок_Кол_во Формат="ЧЦ=17; ЧДЦ=3; ЧРД=.; ЧГ=0; ЧН=0.000">[ТаблДок].Количество</ТаблДок_Кол_во> говорит о том, что атрибут "Кол-во" будет записан в выгружаемый файл с тремя знаками после запятой. Атрибут "Тип" в обязательном порядке задается для параметров, содержащих табличную часть документа, например, <ТаблДок Тип="ТабличнаяЧасть">[Документ].Товары</ТаблДок>. Так же он обязательно задается вместе с атрибутом формат для даты, которую необходимо выгрузить в файл в определенном формате. Например, <Документ_Дата Тип="Дата" Формат="ДФ=dd.MM.yyyy">[Документ].Дата</Документ_Дата>. Атрибуты вида "Отбор_..." используются при необходимости выбрать запись справочника, регистра сведений или строку табличной части, отвечающую определенным условиям. Например, нам нужно получить адрес организации из регистра сведений КонтактнаяИнформация. У данного регистра есть измерения "Объект", "Тип" и "Вид". Для установки отбора по данным измерениям мы задаем атрибуты "Отбор_Объект", "Отбор_Тип" и "Отбор_Вид": <АдресЮЛ Отбор_Вид="[ВидыКонтактнойИнформации].ЮрАдресОрганизации" Отбор_Объект="Сторона" Отбор_Тип="[ТипыКонтактнойИнформации].Адрес">РегистрыСведений.КонтактнаяИнформация</АдресЮЛ>. Значения атрибутов задаются так же, как значения самих параметров, то есть в данном случае - это ссылки на ранее определенные параметры. Для справочников и табличных частей отбор задается аналогично, только не по измерениям, а по реквизитам, по которым необходимо произвести поиск. Атрибут "Кэш" используется для кэширования значений параметров, одинаковых для нескольких документов в одном пакете. Например, в одном пакете выгружается накладная, счет-фактура и счет. В каждом документе присутствуют данные по одному и тому же контрагенту (адрес, телефон, факс). Чтобы не искать заново эту информацию в базе 1С для каждого документа, данные кладутся в кэш, что существенно ускоряет выгрузку. Есть одно особенное значение атрибута "Кэш" - это "Организация". Т.к. в базе 1С часто присутствует всего одна организация (иногда несколько, но в любом случае не так много, как контрагентов) имеет смысл кэшировать информацию по организации не в рамках одного пакета, а в целом в рамках запуска внешней обработки. Атрибуты в файлах настроек для загрузки документовАтрибут "Данные" - в значении атрибута указывается путь, откуда должно быть взято значение из загружаемого файла. Например, запись
означает, что реквизит "НомерВходящегоДокумента" в создаваемом при загрузке документе 1С будет заполнен из атрибута "Номер" узла "Документ" полученного файла. Атрибут "Вычислить" используется, если при загрузке документа определенный реквизит нужно заполнить не значением из файла, а вычислить с помощью функции либо заполнить определенным значение перечислений, либо строковой константой. Например, запись
означает, что в создаваемом документе 1С реквизит "ВидОперации" будет заполнен значением "ПокупкаКомиссия" перечисления "ВидыОперацийПоступлениеТоваровУслуг". Запись <Договор Вычислить="{ЗаполнитьДоговор()}">[Документ].ДоговорКонтрагента</Договор> означает, что реквизит "ДоговорКонтрагента" в создаваемом документе 1С будет заполнен с помощью функции ЗаполнитьДоговор(). Функция описана в модуле формы "РаботаСДокументами1С" внешней обработки. Как и любую функцию, вызываемую из файла настроек, ее можно переопределить в аналогичной форме обработки "ВнешниеФункции_Клиент.epf" В атрибуте "Вычислить" так же можно использовать функции из общих модулей конфигурации. Название модуля и функции при этом разделяются точкой:
В случае вызова функции из общих модулей необходимо указать параметры функции. Атрибут "ВычислитьНаСервере" используется в управляемом приложении. Нужен для вызова функции из общего модуля, работающего только на сервере. Например, для бухгалтерии 3.0 получаем курс валюты:
Исправление ошибок в настройкахЕсли при запуске обработки выдается протокол проверки файлов настроек, значит необходимо внести изменения в настройки. Для файла настроек, в котором обнаружены ошибки, обработка автоматически создает пользовательский файл настроек, в котором присутствуют только те параметры, в которых обнаружены ошибки. Пользовательский файл настроек называется так же, как и основной, только без расширения sbis3. Например, для файла "ВО82БУХ2_РеализацияТоваровУслуг.sbis3.xml" пользовательский файл будет называться "ВО82БУХ2_РеализацияТоваровУслуг.xml". Любые изменения производятся только в пользовательском файле, так как стандартные файлы настроек обновляются при обновлении обработки. Если ошибок несколько, то начинаем исправлять их по-одной. Возможно, при исправлении значения одного параметра, другие ошибки пропадут сами, т.к. параметры связаны между собой. После исправления ошибки закрываем протокол проверки, нажимаем кнопку "Проверить настройки" в обработке и смотрим, остались ли еще ошибки. И так далее, пока не будут исправлены все ошибки. В конфигурации реквизит назван по-другомуДиагностикаВ протоколе проверки выдается ошибка:
Т.о., мы понимаем, что в БД у документа РеализацияТоваровУслуг нет реквизита Договор. РешениеВ протоколе проверки ищем таблицу РеализацияТоваровУслуг (в тексте ошибки указано название таблицы доступных реквизитов). В таблице ищем реквизит по смыслу похожий на "Договор". Видим, что есть реквизит "ДоговорКонтрагента". В пользовательском файле настроек вместо параметра [Документ].Договор пишем [Документ].ДоговорКонтрагента. При наличии доступа в конфигуратор названия реквизитов можно посмотреть там, вместо того, чтобы искать нужную таблицу в протоколе проверки. В конфигурации реквизит хранится в другом местеДиагностикаВ протоколе проверки выдается ошибка:
Т.о., мы понимаем, что в БД у документа РеализацияТоваровУслуг в табличной части Товары нет реквизита НомерГТД. РешениеВ протоколе проверки ищем таблицу Товары. В таблице ищем реквизит по смыслу похожий на "НомерГТД" - ничего похожего на НомерГТД не видим. Получается, что либо номера ГТД не ведутся вообще, либо хранятся в каком-то другом месте. Логичнее всего, что если его нет в табличной части документа, возможно он есть в карточке номенклатуры. Такую же логику можно применить к единицам измерения: в некоторых конфигурациях они указываются в табличной части документа, а в некоторых - только в карточке номенклатуры. В протоколе проверки находим таблицу доступных реквизитов номенклатуры (в таблице Товары есть ее название - обычно это "Номенклатура"). Видим, что в номенклатуре есть реквизит НомерГТД, а значит в пользовательском файле настроек мы заменяем значение параметра [ТаблДок].НомерГТД на [Номенклатура].НомерГТД (параметр [Номенклатура] у нас уже определен в стандартном файле настроек) Аналогичные поиски реквизитов можно выполнять и в конфигураторе (при наличии доступа в него). В открывшемся окне в табличной части Товары документа РеализацияТоваровУслуг ничего похожего на НомерГТД не видим Спрашиваем у клиента, где они заполняют номера ГТД. В нашем примере номер ГТД хранился не в документе реализации, а в справочнике Номенклатуры. Более сложный, но самый правильный вариант узнать, где хранится нужный реквизит - это посмотреть модуль печатной формы документа в 1С, чтобы понять, откуда данные выводятся на печать. Документы хранятся в нестандартном реестреДиагностикаВ протоколе проверки выдается ошибка:
Т.о., мы понимаем, что в БД нет документа КорректировкаРеализации. РешениеСамый простой вариант, если в данной конфигурации вообще не ведутся документы такого типа. В этом случае просто удаляем и стандартный и пользовательский файлы настроек. Второй вариант - документы данного типа ведутся, но называются по-другому, например "КорректировкаРеализацииТоваров". В этом случае создаем новый пользовательский файл настроек по имени документа и полностью заполняем его. За основу можно взять стандартный файл корректировки реализации и внести в него необходимые изменения. НастройкаБывают случаи, когда ошибок в файлах настроек нет, но клиент хочет чтобы при выгрузке или при загрузке документов определенные реквизиты рассчитывались нестандартным способом. Изменение выгрузки документаИзменение выгрузки существующего реквизитаНапример, мы хотим, чтобы при выгрузке накладной сумма НДС бралась не из реквизита СуммаНДС табличной части Товары документа Реализация товаров и услуг, а рассчитывалась с помощью функции. Для этого создаем пользовательский файл настроек. В пользовательском файле не должно быть лишних параметров - только тот, который мы хотим изменить, но должна соблюдаться структура вложенности узлов xml. То есть в нашем случае пользовательский файл будет выглядеть следующим образом: <?xml version="1.0" encoding="utf-8"?> <ини>
</ини> где сбисВычислитьСуммуНДС() - функция, которую мы должны определить в модуле формы "РаботаСДокументами1С" обработки "ВнешниеФункции_Клиент.epf" Добавление параметра в выгружаемый файлПри необходимости выгрузить какую-то дополнительную информацию по документу, мы добавляем в пользовательский файл настроек параметры. Например, хотим добавить информацию о производителе товара. Информация о нем хранится в номенклатуре. Соответственно параметры добавляем в табличную часть. Пользовательский файл настроек будет выглядеть следующим образом: <?xml version="1.0" encoding="utf-8"?> <ини>
</ини> В данном случае мы добавили три параметра в табличную часть документа НаимПроизв, ИННПроиз, КПППроизв - наименовании, ИНН, КПП производителя. Данная информация будет присутствовать в выгружаемом файле. При необходимости ее можно вывести в печатную форму документа. Аналогичным способом можно добавить параметры и в шапку документа. Изменение загрузки документаЧаще всего при загрузке документов возникает необходимость дозаполнить какие-то реквизиты документа, которые при загрузке остались пустыми, т.к. в электронном документе присутствуют далеко не все данные, которые есть в документе 1С. Самый простой пример - всегда при загрузке писать в комментарии документа "Загружен с online.sbis.ru". Для этого в пользовательский файл настроек добавляем строку (соблюдая структуру основного файла настроек): <?xml version="1.0" encoding="utf-8"?> <ини>
</ини>
Для этого смотрим код этого подразделения в справочнике 1С. Пусть это будет код "000000001". В пользовательский файл настроек необходимо добавить две строки (соблюдая структуру основного файла настроек): <?xml version="1.0" encoding="utf-8"?> <ини>
</ини> Данная запись означает, что в справочнике "ПодразделенияОрганизаций" будет выбрана запись с кодом "000000001" и полученным значением будет заполнен реквизит документа "ПодразделениеОрганизации". Аналогично можно заполнить реквизит определенным значением перечисления. Например, в документе поступления в 1С есть реквизит "ВариантРасчетаНДС", который выбирается из перечислений "ВариантыРасчетаНДС". Чтобы заполнить данный реквизит при загрузке документа значением перечисления "ВСумме" делаем пользовательский файл настроек: <?xml version="1.0" encoding="utf-8"?> <ини>
</ини> Более сложный вариант, когда реквизит надо заполнить не просто каким-то определенным значением перечисления, справочника или константой, а произвести определенные вычисления. В этом случае реквизит определяется с помощью функции, которую мы должны описать в модуле формы "РаботаСДокументами1С" обработки "ВнешниеФункции_Клиент.epf". Например, в загружаемом документе мы хотим заполнить "Ответственного" в зависимости от текущего пользователя. Для этого в файле настроек пишем: <?xml version="1.0" encoding="utf-8"?> <ини>
</ини> А в обработке "ВнешниеФункции_Клиент.epf" описываем функцию сбисОпределитьОтветственного(), которая в зависимости от тех или иных условий должна вернуть нужную нам запись справочника "Пользователи". |