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