Настройка внешней обработки СБИС для 1С 8.х — различия между версиями

Материал из razgovorov.ru
Перейти к: навигация, поиск
Строка 1: Строка 1:
 
==Общее описание==
 
==Общее описание==
 
 
Внешняя обработка обмена электронными документами для 1С позволяет выгружать файлы документов реализации и актов сверки взаиморасчетов для последующей отправки их контрагентам, а также загружать файлы, присланные контрагентами.
 
Внешняя обработка обмена электронными документами для 1С позволяет выгружать файлы документов реализации и актов сверки взаиморасчетов для последующей отправки их контрагентам, а также загружать файлы, присланные контрагентами.
 
Обработка реализована таким образом, чтобы её можно было адаптировать под любую, даже сильно измененную конфигурацию без изменения кода самой обработки.
 
  
 
===Почему возникает необходимость настройки?===
 
===Почему возникает необходимость настройки?===
Строка 31: Строка 28:
 
* для управляемых форм ....
 
* для управляемых форм ....
  
Каждый файл обработки содержит:  
+
Файл обработки при запуске распаковывает на диск:  
* ActiveX компонент - отвечает за взаимодействие с СБИС через https
+
* ActiveX компонент который отвечает за взаимодействие с СБИС через https
* Конфигурационные XML файлы - описывают местоположение необходимых для работы обработки данных в конфигурации 1С.
+
* Конфигурационные XML файлы описывающие источники данных необходимые для работы обработки.
  
Обработка может быть дополнена пользовательской обработкой ВнешниеФункции_Клиент.epf содержащей пользовательскую логику формирования документов.
+
Обработка может быть дополнена пользовательской обработкой ВнешниеФункции_Клиент.epf.
  
 
==Основные принципы настройки==
 
==Основные принципы настройки==

Версия 11:29, 29 января 2015

Содержание

Общее описание

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

Почему возникает необходимость настройки?

Конфигурации 1С зачастую изменяются пользователями, в результате таблицы, поля, предусмотренные в типовой конфигурации, могут называться по-другому, или вообще отсутствовать.

Что можно настраивать в внешней обработке?

  • Отправка документов
    • Названия и содержание реестров документов в раздела Продажа
    • Список документов 1С которые необходимы для формирования одного пакета документов
    • Параметры фильтрации списка документов для каждого реестра
    • Какие электронные документы будут сформированы из документа 1С
    • Изменить источники данных для реквизитов электронных документов
    • Добавить новые реквизиты в стандартные электронные документы
    • Описать условия заполнения реквизитов электронных документов.
    • Описать условия формирования пакета документов
    • Добавить к пакету документов неформализованный xls или pdf документ сформированный из макета документа 1С
  • Загрузка документов
    • Определить какие электронные документы можно загружать в 1С
    • Определить какие документы 1С можно создать из электронного документа
    • Определить какие реквизиты документа 1С будут заполнены
    • Описать условия заполнения реквизитов документа 1С

Состав обработки

Обработка состоит из одного файла:

  • для толстого клиента ....
  • для управляемых форм ....

Файл обработки при запуске распаковывает на диск:

  • ActiveX компонент который отвечает за взаимодействие с СБИС через https
  • Конфигурационные XML файлы описывающие источники данных необходимые для работы обработки.

Обработка может быть дополнена пользовательской обработкой ВнешниеФункции_Клиент.epf.

Основные принципы настройки

  1. Код самой обработки ни при каких условиях не изменяется.
  2. Конфигурационные файлы выгружаемые обработкой ни при каких условиях не изменяются.
  3. Вся настройка производится в пользовательских xml файлах, путем переопределения параметров, либо добавления новых.
  4. При необходимости написать функцию для получения какого либо значения, или изменения алгоритма выгрузки создается пользовательская обработка "ВнешниеФункции_Клиент.epf" в которой переопределяются имеющихся функции или создаются новые.

Первый запуск обработки

  1. Запустить 1С. Добавить обработку в список дополнительных внешних обработок. Для этого заходим в меню Сервис/Дополнительные отчеты и обработки/Дополнительные внешние обработки. В открывшемся окне нажимаем добавить и выбираем файл обработки.
  2. Запустить обработку.
  3. При запуске обработка сама попытается найти каталог с ini-файлами для данной конфигурации и заполнить поле «Каталог настроек». Если после открытия это поле осталось пустым, то необходимо вручную выбрать каталог с настройками, соответствующими конфигурации 1С.

В результате на обработке появятся вкладки «Реализация», «Оказание услуг», «Взаиморасчеты», «Поступление» (или часть из них в зависимости от типа и версии конфигурации). Если конфигурация клиента нестандартная в Служебных сообщениях появится список ошибок – говорящих о том, что в базе данных нет каких-то полей или они заданы неверно.

  1. Настроить каталог обмена на ту же папку, что и СБиС Коннект.

Структура файла настроек

Имя файла

Название файла складывается из: • Префикс «СБиС_коннектор_» • Названия технологии работы с документами («Взаиморасчеты», «Реализация», «ОказаниеУслуг», «Поступление») • Суффикс, обозначающий особенности конкретного ini файла («Кор», «АктПроизУсл»). Суффикс не всегда присутствует в названии. • Постфикс – добавляется к имени файла, если типовой ini-файл изменяется под пользовательскую конфигурацию. Ini-файлов, относящихся к определенной технологии, может быть несколько, например: СБиС_коннектор_Реализация.ini, СБиС_коннектор_РеализацияАктПроизУсл.ini, СБиС_коннектор_РеализацияКор.ini. Таким образом, если, например, документы реализации клиента хранятся в нескольких реестрах, все они будут выведены на вкладку «Реализация».

Структура файла

Каждая строка ini-файла представляет собой следующую конструкцию: ИмяПеременной = ЗначениеПеременной // Комментарий Комментарий может быть пустым, но два слеша, отделяющих его, должны обязательно присутствовать. Переменные могут определяться следующими способами.

Прямое обращение к данным из базы

Реализация = Документ.РеализацияТоваровУслуг Реализация – предопределенная переменная, используемая в коде обработки Документ.РеализацияТоваровУслуг – обращение к данным из базы

Обращение к данным через ранее определенную переменную

РеализацияКомментарий = [Реализация].Комментарий [Реализация] – использование ранее предопределенной переменной

Выбор документов (запрос к базе)

Выбор документов из базы выполняется с помощью запроса. Текст запроса прописывается в переменную «ТекстЗапроса», например: ТекстЗапроса = " ВЫБРАТЬ Документ.РеализацияТоваровУслуг.Ссылка КАК Реализация, Документ.РеализацияТоваровУслуг.Дата, Документ.РеализацияТоваровУслуг.Номер, Документ.РеализацияТоваровУслуг.Контрагент КАК Контрагент, Документ.РеализацияТоваровУслуг.СуммаДокумента КАК Сумма, СвязьДокументов.Ссылка КАК СчетФактура ИЗ Документ.РеализацияТоваровУслуг ЛЕВОЕ СОЕДИНЕНИЕ ( ВЫБРАТЬ Документ.СчетФактураВыданный.ДокументыОснования.Ссылка, Документ.СчетФактураВыданный.ДокументыОснования.ДокументОснование ИЗ Документ.СчетФактураВыданный.ДокументыОснования ГДЕ Документ.СчетФактураВыданный.ДокументыОснования.Ссылка.Проведен = ИСТИНА) КАК СвязьДокументов ПО Документ.РеализацияТоваровУслуг.Ссылка = СвязьДокументов.ДокументОснование ГДЕ (Документ.РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНач И &ДатаКон) И (Документ.РеализацияТоваровУслуг.Проведен = ИСТИНА) И ( (Документ.РеализацияТоваровУслуг.Контрагент = &Контрагент) ИЛИ (НЕ &ЗначениеКонтрагентЗаполнено)) УПОРЯДОЧИТЬ ПО СчетФактура, Документ.РеализацияТоваровУслуг.Дата" // Текст запроса для реализации Текст запроса формируется по правилам 1С. Назначения блоков: • «ИЗ» - таблица, из которой выбираются данные • «ВЫБРАТЬ» - выбираемые поля • «ГДЕ» - условие выбора • «КАК» - присвоение логического имени для более простой адресации • «УПОРЯДОЧИТЬ ПО» - правила сортировки Результатом запроса является таблица, поля который должны соответствовать таблице, получаемой запросом из типового ini-файла (например, Контрагента нельзя переименовывать в Клиента).

Обращение к данным через функцию, описанную в обработке

КонтрагентРасчСчет = {ВозвратБанковскихРеквизитов(Контрагент,'Контрагенты','НомерСчета')} Функция описана в модуле внешней обработки. ВозвратБанковскихРеквизитов — имя функции; Контрагент — ранее определенная переменная 'Контрагенты' — строковая константа НовыйАдресКонтрагента = {СоздатьАдрес(*)} Параметр * - говорит о том, что функция содержит стандартный набор параметров и их менять НЕЛЬЗЯ. Текст функций формируется по правилам 1С.

Обращение к данным через функцию, описанную в обработке ВнешниеФункции_Клиент.epf

При необходимости переопределения каких-то переменных через новую функцию создается внешний обработчик "ВнешниеФункции_Клиент.epf" и в нем описываются пользовательские функции. При этом в ini-файле перед именем функции мы пишем «ВО.» КонтрагентТелефоны = {ВО.сбисПолучитьТелефон(Контрагент,'Контрагента')} // Файл "ВнешниеФункции_Клиент.epf" должен находиться в каталоге настроек, указанном на вкладке «Настройка». Обращение к данным через формулу РеализацияСуммаВключаетНДС = ^Истина Истина — логическое выражение. *Выражение может быть логическим и математическим. Число является частным случаем формулы

Обращение к данным через строковые константы

НашаОрганизацияПодписант = 'Петров Сергей Сергеевич' * пустая строка вида говорит, что эти данные не ведутся. Особые переменные, участвующие в условиях: Переменные: КонтрагентЮрФизЛицо, ГрузополучательЮрФизЛицо, ГрузоотправительЮрФизЛицо, НашаОрганизацияЮрФизЛицо — участвуют в условиях, описанных в обработчике при записи в файл реквизитов участников обмена, и должны иметь вид «Физ. лицо» или «Юр. лицо». Если представление в конфигурации не соответствует этому виду, то переменные необходимо переопределить через внешнюю функцию.

Настройка

Если при запуске обработка выводит ошибки – берем в качестве базы типовой ini файл, изменяем название под клиента, настраиваем. Если ошибок несколько, то начинаем исправлять их по-одной. Возможно, при исправлении значения одной переменной, другие ошибки пропадут сами, т.к. переменные связаны между собой. После исправления ошибки перевыбираем каталог настроек в обработке и смотрим, остались ли еще ошибки. И так далее, пока не будут исправлены все ошибки.

В конфигурации поля названы по-другому

Диагностика

При этом в ini файле указана строка: Реализация = Документ.АктОбОказанииПроизводственныхУслуг // Документ реализация товаров и услуг РеализацияСуммаДокумента = [Реализация].Сумма Т.о., мы понимаем, что в БД у документа АктОбОказанииПроизводственныхУслуг нет поля Сумма

Решение

Открываем конфигурации в конфигураторе 1С (Конфигуратор/Верхнее меню/Конфигурация/Открыть конфигурацию)

В открывшемся окне на Документе/АктОбОказанииПроизводственныхУслуг/Реквизиты видим, что поле называется «СуммаДокумента»

Config vo2 001.png

Изменяем пользовательский файл настроек ... имя файла

РеализацияСуммаДокумента = [Реализация].СуммаДокумента

В конфигурации поля хранятся по-другому

Диагностика

При этом в ini файле указано: Реализация = Документ.РеализацияТоваровУслуг // Документ реализация товаров и услуг РеализацияТовары1 = [Реализация].ТабличныеЧасти.Товары // Табличная часть РеализацияТоварыНомерГТД1 = [РеализацияТовары1].НомерГТД // Номер ГТД товара Т.о. мы понимаем, что в БД у документа реализации в табличной части Товары либо нет поля НомерГТД, либо его тип не соответствует типу в стандартной конфигурации.

Решение

Открываем конфигурацию

В открывшемся окне в табличной части Товары документа РеализацияТоваровУслуг ничего похожего на НомерГТД не видим

Config vo2 002.png

Спрашиваем у клиента или смотрим в печатной форме откуда берется данное значение. В нашем примере номер ГТД хранился не документе реализации, а в справочнике Номенклатуры.

Config vo2 003.png

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

РеализацияТоварыНомерГТД1 = [РеализацияТоварыНоменклатура 1].НомерГТД // Номер ГТД товара

В конфигурации другие значения перечислений

Диагностика

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

Как уже говорилось в разделе «Структура ini файла» существуют особые переменные (КонтрагентЮрФизЛицо, ГрузополучательЮрФизЛицо, ГрузоотправительЮрФизЛицо, НашаОрганизацияЮрФизЛицо), от которых зависит формирование в выгружаемом файле сведений об участниках обмена, то есть сформируются сведения о юридическом лице, либо о физическом.

Если обработка не выдала никаких ошибок, а в выгруженном файле мы видим, что данные об организации (юридическом лице) записались как реквизиты физического лица:

<РегСвед>

	<СведФЛ  ИННФЛ="4908962257">

<ФИО Фамилия="ООО" Фамилия="Солнышко"> При этом в ini файле указана строка:

НашаОрганизацияЮрФизЛицо = [НашаОрганизация].ЮрФизЛицо

Т.о. мы понимаем, что в БД в справочнике Организации реквизит ЮрФизЛицо не принимает значение «Юр. лицо»

Решение

  • Открываем описание конфигурации в конфигураторе (Конфигуратор/Верхнее меню/Конфигурация/Открыть конфигурацию)
  • В открывшемся окне находим реквизит Справочники/Организации/Реквизиты/ЮрФизЛицо, двойным щелчком открываем его свойства и видим, что оно ссылается на перечисления:

Config vo2 004.png

  • В окне конфигурации переходим в Перечисления, находим там ЮрФизЛицо и смотрим, какие значения может принимать этот реквизит. Например, значения следующие: Организация и ФизЛицо
  • Нам необходимо переопределить переменную в ini-файле через функцию.

В файле ВнешниеФункции_Клиент.epf описываем функцию:

Функция ТипЛица(Организация) Экспорт Если Организация.ЮрФизЛицо = Перечисления.ЮрФизЛицо.Организация Тогда возврат "Юр. лицо" иначе возврат "Физ. лицо" конецЕсли КонецФункции

И соответственно в ini-файле вместо

НашаОрганизацияЮрФизЛицо = [НашаОрганизация].ЮрФизЛицо

пишем

НашаОрганизацияЮрФизЛицо = {ВО.ТипЛица(НашаОрганизация)}

Файл ВнешниеФункции_Клиент.epf необходимо положить в каталог конфигурации (где лежат стандартные ini файлы и стандартные Внешние функции)

Документы хранятся в нестандартном реестре

Диагностика

Может быть выдано сообщение «Запрос построен неверно» или даже без сообщений об ошибках в реестр обработки не будут попадать нужные документы.

Решение

Корректируем текст запроса к БД

В разделе «ИЗ» и других разделах указываем название нужного реестра документов, например, вместо типового реестра «РеализацияТоваровУслуг» указываем реестр «РеализацияТоваров» Название реестра берем из описания конфигурации, как открыть описание – см. предыдущий раздел.