Настройка внешней обработки СБИС для 1С 8.х
Содержание
- 1 Общее описание
- 2 Состав обработки
- 3 Основные принципы настройки
- 4 Первый запуск обработки
- 5 Файлы настроек (инишки)
- 5.1 Файл настроек конфигурации
- 5.2 Файлы настроек реестров Продажа / Покупка
- 5.3 Файлы настроек загрузки для каждого типа электронного документа
- 5.4 Прямое обращение к данным из базы
- 5.5 Обращение к данным через ранее определенную переменную
- 5.6 Выбор документов (запрос к базе)
- 5.7 Обращение к данным через функцию, описанную в обработке
- 5.8 Обращение к данным через функцию, описанную в обработке ВнешниеФункции_Клиент.epf
- 5.9 Обращение к данным через строковые константы
- 6 Настройка
Общее описание
Внешняя обработка обмена электронными документами для 1С позволяет выгружать файлы документов реализации и актов сверки взаиморасчетов для последующей отправки их контрагентам, а также загружать файлы, присланные контрагентами. Все потребительские настройки выведены в интерфейс обработки, здесь рассматриваются вопросы адаптации внешней обработки под нестандартные конфигурации или особые пожелания клиентов.
Почему возникает необходимость настройки?
Конфигурации 1С зачастую изменяются пользователями, в результате таблицы, поля, предусмотренные в типовой конфигурации, могут называться по-другому, или вообще отсутствовать.
Что можно настраивать в внешней обработке?
Что можно настраивать | Уровень знаний |
---|---|
Отправка документов | |
Добавление не поддерживаемого реестра документов в раздел Продажа | Средний |
Содержание реестров документов в раздела Продажа | Средний |
Список документов 1С которые необходимы для формирования одного пакета документов | Средний |
Параметры фильтрации списка документов для каждого реестра | Продвинутый |
Какие электронные документы будут сформированы из документа 1С | Средний |
Изменить источники данных для реквизитов электронных документов | Начальный |
Добавить новые реквизиты в стандартные электронные документы | Начальный |
Описать условия заполнения реквизитов электронных документов | Продвинутый |
Описать условия формирования пакета документов | Продвинутый |
Добавить к пакету документов не формализованный xls или pdf документ сформированный из макета документа 1С | Средний |
Загрузка документов | |
Определить какие электронные документы можно загружать в 1С | Средний |
Определить какие документы 1С можно создать из электронного документа | Средний |
Определить какие реквизиты документа 1С будут заполнены | Начальный |
Описать условия заполнения реквизитов документа 1С | Продвинутый |
Состав обработки
Обработка состоит из одного файла:
- для толстого клиента ....
- для управляемых форм ....
Файл обработки при запуске распаковывает на диск:
- ActiveX компонент который отвечает за взаимодействие с СБИС через https
- Конфигурационные XML файлы описывающие источники данных необходимые для работы обработки.
Обработка может быть дополнена пользовательской обработкой ВнешниеФункции_Клиент.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
Структура файла
Содержит плоским списком параметры конфигурации которые необходимы для работы обработки: Организации - Справочник Организации
Файлы настроек реестров Продажа / Покупка
Имя файла
Название файла формируется по шаблону «ВО82_[Код конфигурации]_[Имя документа].sbis3.xml». Например для Реализации товаров и услуг в Бухгалтерии 2.0 это будет ВО82_БУХ2_РеализацияТоваровУслуг.sbis3.xml
Структура файла
- Общие параметры данного реестра документов
- Массив с параметрами выгружаемых файлов
- Параметры шапки документа
- Массив табличных частей
- Параметры табличной части документа
Файлы настроек загрузки для каждого типа электронного документа
Имя файла
Название файла формируется по шаблону «ВО82_[Код конфигурации]_[КодФормата]_[ВерсияФормата].sbis3.xml». Например для счет-фактуры загружаемой в Бухгалтерию 2.0 это будет ВО82_БУХ2_СчФктр_3_01.sbis3.xml
Структура файла
- Общие параметры для файлов этого типа
- Массив документов 1С, которые возможно создать при загрузке файла этого типа
- Параметры шапки создаваемого документа
- Параметры табличной части документа
Прямое обращение к данным из базы
Реализация = Документ.РеализацияТоваровУслуг Реализация – предопределенная переменная, используемая в коде обработки Документ.РеализацияТоваровУслуг – обращение к данным из базы
Обращение к данным через ранее определенную переменную
РеализацияКомментарий = [Реализация].Комментарий [Реализация] – использование ранее предопределенной переменной
Выбор документов (запрос к базе)
Выбор документов из базы выполняется с помощью запроса. Текст запроса прописывается в переменную «ТекстЗапроса», например: ТекстЗапроса = " ВЫБРАТЬ Документ.РеализацияТоваровУслуг.Ссылка КАК Реализация, Документ.РеализацияТоваровУслуг.Дата, Документ.РеализацияТоваровУслуг.Номер, Документ.РеализацияТоваровУслуг.Контрагент КАК Контрагент, Документ.РеализацияТоваровУслуг.СуммаДокумента КАК Сумма, СвязьДокументов.Ссылка КАК СчетФактура ИЗ Документ.РеализацияТоваровУслуг ЛЕВОЕ СОЕДИНЕНИЕ ( ВЫБРАТЬ Документ.СчетФактураВыданный.ДокументыОснования.Ссылка, Документ.СчетФактураВыданный.ДокументыОснования.ДокументОснование ИЗ Документ.СчетФактураВыданный.ДокументыОснования ГДЕ Документ.СчетФактураВыданный.ДокументыОснования.Ссылка.Проведен = ИСТИНА) КАК СвязьДокументов ПО Документ.РеализацияТоваровУслуг.Ссылка = СвязьДокументов.ДокументОснование ГДЕ (Документ.РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНач И &ДатаКон) И (Документ.РеализацияТоваровУслуг.Проведен = ИСТИНА) И ( (Документ.РеализацияТоваровУслуг.Контрагент = &Контрагент) ИЛИ (НЕ &ЗначениеКонтрагентЗаполнено)) УПОРЯДОЧИТЬ ПО СчетФактура, Документ.РеализацияТоваровУслуг.Дата" // Текст запроса для реализации Текст запроса формируется по правилам 1С. Назначения блоков: • «ИЗ» - таблица, из которой выбираются данные • «ВЫБРАТЬ» - выбираемые поля • «ГДЕ» - условие выбора • «КАК» - присвоение логического имени для более простой адресации • «УПОРЯДОЧИТЬ ПО» - правила сортировки Результатом запроса является таблица, поля который должны соответствовать таблице, получаемой запросом из типового ini-файла (например, Контрагента нельзя переименовывать в Клиента).
Обращение к данным через функцию, описанную в обработке
КонтрагентРасчСчет = {ВозвратБанковскихРеквизитов(Контрагент,'Контрагенты','НомерСчета')} Функция описана в модуле внешней обработки. ВозвратБанковскихРеквизитов — имя функции; Контрагент — ранее определенная переменная 'Контрагенты' — строковая константа НовыйАдресКонтрагента = {СоздатьАдрес(*)} Параметр * - говорит о том, что функция содержит стандартный набор параметров и их менять НЕЛЬЗЯ. Текст функций формируется по правилам 1С.
Обращение к данным через функцию, описанную в обработке ВнешниеФункции_Клиент.epf
При необходимости переопределения каких-то переменных через новую функцию создается внешний обработчик "ВнешниеФункции_Клиент.epf" и в нем описываются пользовательские функции. При этом в ini-файле перед именем функции мы пишем «ВО.» КонтрагентТелефоны = {ВО.сбисПолучитьТелефон(Контрагент,'Контрагента')} // Файл "ВнешниеФункции_Клиент.epf" должен находиться в каталоге настроек, указанном на вкладке «Настройка». Обращение к данным через формулу РеализацияСуммаВключаетНДС = ^Истина Истина — логическое выражение. *Выражение может быть логическим и математическим. Число является частным случаем формулы
Обращение к данным через строковые константы
НашаОрганизацияПодписант = 'Петров Сергей Сергеевич' * пустая строка вида говорит, что эти данные не ведутся. Особые переменные, участвующие в условиях: Переменные: КонтрагентЮрФизЛицо, ГрузополучательЮрФизЛицо, ГрузоотправительЮрФизЛицо, НашаОрганизацияЮрФизЛицо — участвуют в условиях, описанных в обработчике при записи в файл реквизитов участников обмена, и должны иметь вид «Физ. лицо» или «Юр. лицо». Если представление в конфигурации не соответствует этому виду, то переменные необходимо переопределить через внешнюю функцию.
Настройка
Если при запуске обработка выводит ошибки – берем в качестве базы типовой ini файл, изменяем название под клиента, настраиваем. Если ошибок несколько, то начинаем исправлять их по-одной. Возможно, при исправлении значения одной переменной, другие ошибки пропадут сами, т.к. переменные связаны между собой. После исправления ошибки перевыбираем каталог настроек в обработке и смотрим, остались ли еще ошибки. И так далее, пока не будут исправлены все ошибки.
В конфигурации поля названы по-другому
Диагностика
При этом в ini файле указана строка: Реализация = Документ.АктОбОказанииПроизводственныхУслуг // Документ реализация товаров и услуг РеализацияСуммаДокумента = [Реализация].Сумма Т.о., мы понимаем, что в БД у документа АктОбОказанииПроизводственныхУслуг нет поля Сумма
Решение
Открываем конфигурации в конфигураторе 1С (Конфигуратор/Верхнее меню/Конфигурация/Открыть конфигурацию)
В открывшемся окне на Документе/АктОбОказанииПроизводственныхУслуг/Реквизиты видим, что поле называется «СуммаДокумента»
Изменяем пользовательский файл настроек ... имя файла
РеализацияСуммаДокумента = [Реализация].СуммаДокумента
В конфигурации поля хранятся по-другому
Диагностика
При этом в ini файле указано:
Реализация = Документ.РеализацияТоваровУслуг // Документ реализация товаров и услуг
РеализацияТовары1 = [Реализация].ТабличныеЧасти.Товары // Табличная часть
РеализацияТоварыНомерГТД1 = [РеализацияТовары1].НомерГТД // Номер ГТД товара
Т.о. мы понимаем, что в БД у документа реализации в табличной части Товары либо нет поля НомерГТД, либо его тип не соответствует типу в стандартной конфигурации.
Решение
Открываем конфигурацию
В открывшемся окне в табличной части Товары документа РеализацияТоваровУслуг ничего похожего на НомерГТД не видим
Спрашиваем у клиента или смотрим в печатной форме откуда берется данное значение. В нашем примере номер ГТД хранился не документе реализации, а в справочнике Номенклатуры.
так как наименование табличной части реализации уже берет часть данных в справочника номенклатуры, нам остается только переопределить параметр на новый источник данных.
РеализацияТоварыНомерГТД1 = [РеализацияТоварыНоменклатура 1].НомерГТД // Номер ГТД товара
В конфигурации другие значения перечислений
Диагностика
В данном случае обработка может не выдать никаких ошибок, но файл сформируется неправильно. Увидеть это можно, открыв выгруженный файл (при настройке нужно обязательно это сделать) .
Как уже говорилось в разделе «Структура ini файла» существуют особые переменные (КонтрагентЮрФизЛицо, ГрузополучательЮрФизЛицо, ГрузоотправительЮрФизЛицо, НашаОрганизацияЮрФизЛицо), от которых зависит формирование в выгружаемом файле сведений об участниках обмена, то есть сформируются сведения о юридическом лице, либо о физическом.
Если обработка не выдала никаких ошибок, а в выгруженном файле мы видим, что данные об организации (юридическом лице) записались как реквизиты физического лица:
<РегСвед>
<СведФЛ ИННФЛ="4908962257">
<ФИО Фамилия="ООО" Фамилия="Солнышко"> При этом в ini файле указана строка:
НашаОрганизацияЮрФизЛицо = [НашаОрганизация].ЮрФизЛицо
Т.о. мы понимаем, что в БД в справочнике Организации реквизит ЮрФизЛицо не принимает значение «Юр. лицо»
Решение
- Открываем описание конфигурации в конфигураторе (Конфигуратор/Верхнее меню/Конфигурация/Открыть конфигурацию)
- В открывшемся окне находим реквизит Справочники/Организации/Реквизиты/ЮрФизЛицо, двойным щелчком открываем его свойства и видим, что оно ссылается на перечисления:
- В окне конфигурации переходим в Перечисления, находим там ЮрФизЛицо и смотрим, какие значения может принимать этот реквизит. Например, значения следующие: Организация и ФизЛицо
- Нам необходимо переопределить переменную в ini-файле через функцию.
В файле ВнешниеФункции_Клиент.epf описываем функцию:
Функция ТипЛица(Организация) Экспорт Если Организация.ЮрФизЛицо = Перечисления.ЮрФизЛицо.Организация Тогда возврат "Юр. лицо" иначе возврат "Физ. лицо" конецЕсли КонецФункции
И соответственно в ini-файле вместо
НашаОрганизацияЮрФизЛицо = [НашаОрганизация].ЮрФизЛицо
пишем
НашаОрганизацияЮрФизЛицо = {ВО.ТипЛица(НашаОрганизация)}
Файл ВнешниеФункции_Клиент.epf необходимо положить в каталог конфигурации (где лежат стандартные ini файлы и стандартные Внешние функции)
Документы хранятся в нестандартном реестре
Диагностика
Может быть выдано сообщение «Запрос построен неверно» или даже без сообщений об ошибках в реестр обработки не будут попадать нужные документы.
Решение
Корректируем текст запроса к БД
В разделе «ИЗ» и других разделах указываем название нужного реестра документов, например, вместо типового реестра «РеализацияТоваровУслуг» указываем реестр «РеализацияТоваров» Название реестра берем из описания конфигурации, как открыть описание – см. предыдущий раздел.