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

Материал из razgovorov.ru
Перейти к: навигация, поиск
(added Category:1С using HotCat)
(В конфигурации поля названы по-другому)
Строка 127: Строка 127:
 
После исправления ошибки перевыбираем каталог настроек в обработке и смотрим, остались ли еще ошибки. И так далее, пока не будут исправлены все ошибки.
 
После исправления ошибки перевыбираем каталог настроек в обработке и смотрим, остались ли еще ошибки. И так далее, пока не будут исправлены все ошибки.
 
=== В конфигурации поля названы по-другому===
 
=== В конфигурации поля названы по-другому===
Диагностика
+
====Диагностика====
 
   
 
   
 
При этом в ini файле указана строка:
 
При этом в ini файле указана строка:
Строка 133: Строка 133:
 
РеализацияСуммаДокумента = [Реализация].Сумма
 
РеализацияСуммаДокумента = [Реализация].Сумма
 
Т.о., мы понимаем, что в БД у документа АктОбОказанииПроизводственныхУслуг нет поля Сумма
 
Т.о., мы понимаем, что в БД у документа АктОбОказанииПроизводственныхУслуг нет поля Сумма
Решение
+
====Решение====
• Открываем описание конфигурации в конфигураторе (Конфигуратор/Верхнее меню/Конфигурация/Открыть конфигурацию)
+
• Открываем конфигурации в конфигураторе (Конфигуратор/Верхнее меню/Конфигурация/Открыть конфигурацию)
 
• В открывшемся окне на Документе/АктОбОказанииПроизводственныхУслуг/Реквизиты видим, что поле называется «СуммаДокумента»
 
• В открывшемся окне на Документе/АктОбОказанииПроизводственныхУслуг/Реквизиты видим, что поле называется «СуммаДокумента»
+
[[Файл:Config vo2 001.png]]
• Изменяем ini файл
+
• Изменяем пользовательский файл настроек ... имя файла
 
РеализацияСуммаДокумента = [Реализация].СуммаДокумента
 
РеализацияСуммаДокумента = [Реализация].СуммаДокумента
  

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

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

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

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

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

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

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

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

Каждый файл обработки содержит:

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

Обработка может быть дополнена пользовательской обработкой ВнешниеФункции_Клиент.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].НомерГТД // Номер ГТД товара Т.о. мы понимаем, что в БД у документа реализации в табличной части Товары либо нет поля НомерГТД, либо его тип несоответствует типу в стандартной конфигурации. Решение • Открываем описание конфигурации в конфигураторе • В открывшемся окне в табличной части Товары документа РеализацияТоваровУслуг ничего похожего на НомерГТД не видим • С помощью поиска ищем, где встречается НомерГТД в конфигурации. Например, обнаружили его в справочнике Номенклатура:

В то же время в реквизитах табличной части Товары Номенклатура тоже присутствует.

Следовательно, изменяем ini-файл следующим образом: РеализацияТоварыНомерГТД1 = [РеализацияТоварыНоменклатура 1].НомерГТД // Номер ГТД товара


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

Диагностика

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

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

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

<РегСвед>

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

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

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

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

Решение

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

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

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

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

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

пишем

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

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

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

Диагностика

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

Решение

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

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