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

Материал из razgovorov.ru
Перейти к: навигация, поиск
(Имя файла)
(Структура файла)
Строка 102: Строка 102:
 
Содержит плоским списком параметры конфигурации, которые необходимы для работы обработки:
 
Содержит плоским списком параметры конфигурации, которые необходимы для работы обработки:
  
* Организации - Название справочника содержащего сведения о наших организациях.
+
<Контрагенты>Справочник.Контрагенты</Контрагенты>
 +
<Контрагенты_ИНН>[Контрагенты].ИНН</Контрагенты_ИНН>
 +
<Контрагенты_КПП>[Контрагенты].КПП</Контрагенты_КПП>
 +
<Организации>Справочник.Организации</Организации>
 +
<Организации_ИНН>[Организации].ИНН</Организации_ИНН>
 +
<Организации_КПП>[Организации].КПП</Организации_КПП>
 +
<ФормаРаботыСоСтатусами>'Статусы_Регистры'</ФормаРаботыСоСтатусами>
 +
<ФормаРаботыСНоменклатуройПоставщика>'СопоставлениеНоменклатуры_ДБФ'</ФормаРаботыСНоменклатуройПоставщика>
 +
<НоменклатураПоставщиков Отбор_Идентификатор="НоменклатураПоставщиков_Идентификатор" Отбор_Владелец="НоменклатураПоставщиков_Контрагент">Справочник.НоменклатураПоставщиков</НоменклатураПоставщиков>
 +
<НоменклатураПоставщиков_Наименование Данные="Название">[НоменклатураПоставщиков].Наименование</НоменклатураПоставщиков_Наименование>
 +
<НоменклатураПоставщиков_Идентификатор Данные="Идентификатор">[НоменклатураПоставщиков].Идентификатор</НоменклатураПоставщиков_Идентификатор>
 +
<НоменклатураПоставщиков_Номенклатура Данные="Номенклатура">[НоменклатураПоставщиков].Номенклатура</НоменклатураПоставщиков_Номенклатура>
 +
<НоменклатураПоставщиков_Характеристика Данные="Характеристика">''</НоменклатураПоставщиков_Характеристика>
 +
<НоменклатураПоставщиков_Контрагент Данные="Контрагент">[НоменклатураПоставщиков].Владелец</НоменклатураПоставщиков_Контрагент>
 +
<!--Данные для автоматического создания карточек номенклатуры-->
 +
<Номенклатура>Справочник.Номенклатура</Номенклатура>
 +
<Номенклатура_Наименование Данные="Название">[Номенклатура].Наименование</Номенклатура_Наименование>
 +
<Номенклатура_ПолноеНаименование Данные="Название">[Номенклатура].НаименованиеПолное</Номенклатура_ПолноеНаименование>
 +
<Номенклатура_ЕдиницаИзмерения>[Номенклатура].БазоваяЕдиницаИзмерения</Номенклатура_ЕдиницаИзмерения>
 +
<ЕдиницаИзмерения>Справочник.КлассификаторЕдиницИзмерения</ЕдиницаИзмерения>
 +
<Номенклатура_Комментарий>[Номенклатура].Комментарий</Номенклатура_Комментарий>
 +
<Номенклатура_Услуга>[Номенклатура].Услуга</Номенклатура_Услуга>
  
 
===Файлы настроек реестров Продажа / Покупка===
 
===Файлы настроек реестров Продажа / Покупка===

Версия 10:31, 26 марта 2015

Содержание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  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С, например, "Реализация товаров и услуг", "Акт об оказании производственных услуг", "Заказ поставщику" и другие. Из этих разделов документы 1С можно отправить контрагентам в электронном виде.

Состав подразделов в Продаже/Покупке определяется файлами настроек.

Имя файла

Название файла формируется по шаблону «ВО82[Код конфигурации]_[Имя документа].sbis3.xml». Например, для Реализации товаров и услуг в Бухгалтерии 2.0 это будет ВО82БУХ2_РеализацияТоваровУслуг.sbis3.xml

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

  • Общие параметры данного реестра документов
  • Массив с параметрами выгружаемых файлов
    • Параметры шапки документа
    • Массив табличных частей
      • Параметры табличной части документа

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

В какой именно раздел будет добавлен тот или иной реестр документов, определяется параметром файла настроек "ДокументРаздел":

<ДокументРаздел>'Продажа'</ДокументРаздел>

Некоторые документы, например, "Акт сверки", могут присутствовать в обоих разделах:

<ДокументРаздел>'Продажа,Покупка'</ДокументРаздел>

Имя подраздела, которое отображается в интерфейсе обработки, определяется параметром "Реестр1С_Название":

<Реестр1С_Название>'Реализация товаров и услуг'</Реестр1С_Название>

По умолчанию при выгрузке каждого документа используется файл настроек, соответствующий имени этого документа, то есть для Реализации товаров и услуг используется файл ВО82БУХ2_РеализацияТоваровУслуг.sbis3.xml, для Счета-фактуры выданного - ВО82БУХ2_СчетФактураВыданный.sbis3.xml и т.д.

Иногда документы одного и того же типа нужно выгружать по-разному в зависимости от определенного условия. Например, логика выгрузки авансовых счетов-фактур отличается от обычных, хотя все они являются одним и тем же документом 1С - "Счет фактура выданный". В этом случае создается отдельный файл настроек со своим запросом и своими параметрами выгружаемых файлов. В запросе указывается условие, что в данный подраздел попадают только счета-фактуры с видом "На аванс". Имя файла настроек будет отличаться от имени документа 1С, т.к. стандартное имя уже занято файлом для выгрузки обычных счетов-фактур. Например, для Бухгалтерии 2.0 это будет ВО82БУХ2_СчетФактураНаАванс.sbis3.xml. Чтобы авансовый счет-фактура выгружался с помощью данного файла настроек, а не стандартного ВО82БУХ2_СчетФактураВыданный.sbis3.xml, необходимо указать название используемого файла в поле запроса "ФайлНастроекДокумента".

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

<мФайл Имя="ЭДОНакл">
...
</мФайл>
<мФайл Имя="АктВР">
...
</мФайл>

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

Внутри каждого узла "мФайл" может быть описана одна или несколько табличных частей. Например, для акта описывается две табличные части:

<мФайл Имя="АктВР">
    ...
    <мТаблДок Имя="Услуги">
        <ТаблДок Тип="ТабличнаяЧасть">[Документ].Услуги</ТаблДок>
        ...
    </мТаблДок>
    <мТаблДок Имя="АгенстсиеУслуги">
        <ТаблДок Тип="ТабличнаяЧасть">[Документ].АгенстсиеУслуги</ТаблДок>
        ...
    </мТаблДок>
</мФайл>

Если хотя бы одна из этих табличных частей будет заполнена, то сформируется электронный документ Акт.

Для накладной обычно описывается одна табличная часть - "Товары". Если она будет заполнена, то сформируется электронный документ Накладная.

Если будут заполнены и товары, и услуги, то сформируются оба документа.


В файлах настроек есть группа особых параметров, имя которых начинается на "Файл_" или "Документ_". Эти параметры автоматически записываются в выгружаемый файл как атрибуты соответствующего узла ("Файл" или "Документ"). Параметры, имя которых начинается на "ТаблДок_" автоматически записываются в выгружаемый файл в строки табличной части.

Файлы настроек загрузки

Данные файлы предназначены для загрузки полученных электронных документов в 1С. Загрузка документов происходит в разделе внешней обработки Полученные.

Имя файла

Название файла формируется по шаблону «ВО82[Код конфигурации]_[КодФормата]_[ВерсияФормата].sbis3.xml». Например, для счет-фактуры загружаемой в Бухгалтерию 2.0 это будет ВО82БУХ2_СчФктр_3_01.sbis3.xml

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

  • Общие параметры для файлов этого типа
  • Массив документов 1С, которые возможно создать при загрузке файла этого типа
    • Параметры шапки создаваемого документа
    • Параметры табличной части документа

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

<мДокумент Имя="ПоступлениеТоваровУслуг">
...
</мДокумент>
<мДокумент Имя="ВозвратТоваровОтПокупателя">
...
</мДокумент>

При загрузке документов из реестра (не открывая карточку документа) всегда будет создаваться документ, указанный первым в файле настроек. При открытии карточки просмотра можно выбрать, какой документ 1С будет создан при загрузке.

Описание параметров в файлах настроек

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

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

  • Документ
  • ЗаписьСправочника

Например, следующая запись означает, что при выгрузке определенного документа 1С в параметре "Документ" будет ссылка на этот документ.

<Документ>Документ.РеализацияТоваровУслуг</Документ>

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

<Документ>ЗаписьСправочника.ДоговорыКонтрагентов</Документ>

В этом случае в параметре "Документ" будет ссылка на выгружаемый договор.

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

Ранее определенный параметр пишется в квадратных скобках. После скобки ставится точка и далее название реквизита (табличной части, значение перечисления). Например:

<Сторона_ИНН>[Сторона].ИНН</Сторона_ИНН>

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

<Сторона>[Документ].Организация</Сторона>

Далее смотрим определение параметра "Документ":

<Документ>Документ.РеализацияТоваровУслуг</Документ>

Про параметр "Документ" мы уже знаем, что это прямое обращение к выгружаемому документу. Таким образом, мы понимаем, что в параметре "Сторона_ИНН" будет ИНН организации из выгружаемого документа.

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

С помощью запроса выбираются документы из базы 1С. Выбранные документы отображаются в определенном подразделе разделов Продажа или Покупка. Запросом определяется состав документов, отправляемых контрагенту одним комплектом.

Результатом выполнения запроса является таблица, с определенным набором полей:

  • Документ - основной документ комплекта
  • ДокументПроведен - признак проведения документа, используется при отображении пиктограммы документа в реестре
  • ДокументПометкаУдаления - признак удаления документа, используется при отображении пиктограммы документа в реестре
  • ДатаДокумента - дата документа, отображается в реестре документов
  • НомерДокумента - номер документа, отображается в реестре документов
  • Контрагент - название контрагента, отображается в реестре документов
  • Организация - название организации, отображается в реестре документов
  • Комментарий - комментарий документа, отображается в реестре документов
  • Склад - склад документа, отображается в реестре документов
  • СуммаДокумента - сумма документа, отображается в реестре документов
  • Приложение - документ, связанный с основным документом комплекта
  • СуммаПриложения - сумма связанного документа
  • ДатаПриложения - дата связанного документа
  • НомерПриложения - номер связанного документа
  • СтатусЭД - статус электронного документа (заполнен, если документ уже отправлен в электронном виде), отображается пиктограммой в реестре документов

Дополнительно могут быть заполнены поля:

  • ФайлНастроекДокумента - название файла настроек, который будет использован при выгрузке основного документа комплекта (без префиксов и расширения, например, "СчетФактураНаАванс")
  • ФайлНастроекПриложения - название файла настроек, который будет использован при выгрузке документа-приложения (без префиксов и расширения)

При обработке результата запроса записи группируются по основному документу, таким образом мы получаем запись с одним основным документом и несколькими приложениями - все это при отправке контрагенту попадет в один комплект документов. Наглядно это можно увидеть, открыв карточку документа из реестров в разделах Продажа или Покупка.

Запрос содержит стандартный набор параметров:

  • ДатНач - начальная дата, с которой запрашиваются документы
  • ДатКон - конечная дата, по которую запрашиваются документы
  • Контрагент - контрагент, по которому отбираются документы
  • ЗначениеКонтрагентЗаполнено - признак заполненности фильтра по контрагенту
  • ТекущаяОрганизация - организация, по которой отбираются документы
  • ЗначениеТекущаяОрганизацияЗаполнено - признак заполненности фильтра по организации
  • ТекущийДокумент - определенный документ (заполняется при использовании внешней обработки, как внешней печатной формы определенного документа)
  • ЗначениеТекущийДокументЗаполнено - признак заполненности параметра ТекущийДокумент

Значения параметров берутся из фильтра, установленного в интерфейсе обработки.

Могут быть установлены дополнительные параметры при использовании пользовательских фильтров (см. раздел про пользовательские фильтры)

Текст запроса прописывается в параметр <ЗапросСпискаДокументов>, например:

ВЫБРАТЬ РАЗРЕШЕННЫЕ 
	РеализацияТоваровУслуг.Ссылка, 
	РеализацияТоваровУслуг.Проведен, 
	РеализацияТоваровУслуг.ПометкаУдаления, 
	РеализацияТоваровУслуг.Дата, 
	РеализацияТоваровУслуг.Номер, 
	РеализацияТоваровУслуг.Контрагент.Наименование КАК Контрагент, 
	РеализацияТоваровУслуг.Организация.Наименование КАК Организация,
	ВЫРАЗИТЬ(РеализацияТоваровУслуг.Комментарий КАК СТРОКА(1000)) КАК Комментарий,
	РеализацияТоваровУслуг.Склад.Наименование КАК Склад,
	РеализацияТоваровУслуг.СуммаДокумента, 
	РеализацияТоваровУслуг.СчетНаОплатуПокупателю КАК Приложение,
	РеализацияТоваровУслуг.СчетНаОплатуПокупателю.СуммаДокумента КАК СуммаПриложения, 
	РеализацияТоваровУслуг.СчетНаОплатуПокупателю.Дата КАК ДатаПриложения, 
	РеализацияТоваровУслуг.СчетНаОплатуПокупателю.Номер КАК НомерПриложения
ПОМЕСТИТЬ ВТ_Реализация 
ИЗ 	
	Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг 
ГДЕ 
	((РеализацияТоваровУслуг.Дата МЕЖДУ &amp;ДатаНач И &amp;ДатаКон) ИЛИ (НЕ &amp;ЗначениеДатаКонЗаполнено И РеализацияТоваровУслуг.Дата &gt; &amp;ДатаНач)) 
	И ((РеализацияТоваровУслуг.Контрагент = &amp;Контрагент) ИЛИ (РеализацияТоваровУслуг.Контрагент В Иерархии(&amp;Контрагент)) ИЛИ (НЕ &amp;ЗначениеКонтрагентЗаполнено)) 
	И ((РеализацияТоваровУслуг.Организация = &amp;ТекущаяОрганизация) ИЛИ (НЕ &amp;ЗначениеТекущаяОрганизацияЗаполнено))
	И ((РеализацияТоваровУслуг.Ссылка = &amp;ТекущийДокумент)  ИЛИ (НЕ &amp;ЗначениеТекущийДокументЗаполнено))
	И НЕ РеализацияТоваровУслуг.ПометкаУдаления;
ВЫБРАТЬ 
	ВТ_Реализация.Ссылка КАК Документ, 
	ВТ_Реализация.Проведен КАК ДокументПроведен,
	ВТ_Реализация.ПометкаУдаления КАК ДокументПометкаУдаления,
	ВТ_Реализация.Дата КАК ДатаДокумента, 	
	ВТ_Реализация.Номер КАК НомерДокумента, 
	ВТ_Реализация.Контрагент КАК Контрагент, 
	ВТ_Реализация.Организация КАК Организация,
	ВТ_Реализация.Комментарий КАК Комментарий,
	ВТ_Реализация.Склад КАК Склад,
	ВТ_Реализация.СуммаДокумента КАК СуммаДокумента, 
	ВТ_Реализация.Приложение КАК Приложение, 
	ВТ_Реализация.СуммаПриложения КАК СуммаПриложения, 	
	ВТ_Реализация.ДатаПриложения КАК ДатаПриложения, 
	ВТ_Реализация.НомерПриложения КАК НомерПриложения,
	ЗначенияСвойствОбъектов.Значение КАК СтатусЭД
ИЗ 
	ВТ_Реализация
	ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
	ПО ВТ_Реализация.Ссылка = ЗначенияСвойствОбъектов.Объект И ЗначенияСвойствОбъектов.Свойство.Наименование = "ДокументСБИС_Статус"
ГДЕ
	НЕ ВТ_Реализация.Приложение =  ЗНАЧЕНИЕ(Документ.СчетНаОплатуПокупателю.ПустаяСсылка)
ОБЪЕДИНИТЬ 
ВЫБРАТЬ 
	ВТ_Реализация.Ссылка КАК Документ,
	ВТ_Реализация.Проведен КАК ДокументПроведен,
	ВТ_Реализация.ПометкаУдаления КАК ДокументПометкаУдаления, 
	ВТ_Реализация.Дата КАК ДатаДокумента, 	
	ВТ_Реализация.Номер КАК НомерДокумента, 
	ВТ_Реализация.Контрагент КАК Контрагент, 
	ВТ_Реализация.Организация КАК Организация,
	ВТ_Реализация.Комментарий КАК Комментарий,
	ВТ_Реализация.Склад КАК Склад,
	ВТ_Реализация.СуммаДокумента КАК СуммаДокумента, 
	СвязьДокументов.Ссылка КАК Приложение,
	СвязьДокументов.Ссылка.СуммаДокумента КАК СуммаПриложения, 
	СвязьДокументов.Ссылка.Дата КАК ДатаПриложения, 
	СвязьДокументов.Ссылка.Номер КАК НомерПриложения,
	ЗначенияСвойствОбъектов.Значение КАК СтатусЭД
ИЗ 
	ВТ_Реализация 
	ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетФактураВыданный.ДокументыОснования КАК СвязьДокументов
	ПО ВТ_Реализация.Ссылка = СвязьДокументов.ДокументОснование
	ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
	ПО ВТ_Реализация.Ссылка = ЗначенияСвойствОбъектов.Объект И ЗначенияСвойствОбъектов.Свойство.Наименование = "ДокументСБИС_Статус" 
УПОРЯДОЧИТЬ ПО
	ДатаДокумента, НомерДокумента

Текст запроса формируется по правилам 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". Любые изменения производятся только в пользовательском файле, так как стандартные файлы настроек обновляются при обновлении обработки.

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

В конфигурации реквизит назван по-другому

Диагностика

В протоколе проверки выдается ошибка:

Не найден реквизит "Договор".
Значение параметра: [Документ].Договор
Полный путь параметра: Документ.РеализацияТоваровУслуг.Договор
Таблица доступных реквизитов: РеализацияТоваровУслуг

Т.о., мы понимаем, что в БД у документа РеализацияТоваровУслуг нет реквизита Договор.

Решение

В протоколе проверки ищем таблицу РеализацияТоваровУслуг (в тексте ошибки указано название таблицы доступных реквизитов). В таблице ищем реквизит по смыслу похожий на "Договор".

Видим, что есть реквизит "ДоговорКонтрагента". В пользовательском файле настроек вместо параметра [Документ].Договор пишем [Документ].ДоговорКонтрагента.

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

В конфигурации реквизит хранится в другом месте

Диагностика

В протоколе проверки выдается ошибка:

Не найден реквизит "НомерГТД".
Значение параметра: [ТаблДок].НомерГТД
Полный путь параметра: Документ.РеализацияТоваровУслуг.ТабличнаяЧасть.Товары.НомерГТД
Таблица доступных реквизитов: Товары

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

Решение

В протоколе проверки ищем таблицу Товары. В таблице ищем реквизит по смыслу похожий на "НомерГТД" - ничего похожего на НомерГТД не видим. Получается, что либо номера ГТД не ведутся вообще, либо хранятся в каком-то другом месте. Логичнее всего, что если его нет в табличной части документа, возможно он есть в карточке номенклатуры. Такую же логику можно применить к единицам измерения: в некоторых конфигурациях они указываются в табличной части документа, а в некоторых - только в карточке номенклатуры.

В протоколе проверки находим таблицу доступных реквизитов номенклатуры (в таблице Товары есть ее название - обычно это "Номенклатура"). Видим, что в номенклатуре есть реквизит НомерГТД, а значит в пользовательском файле настроек мы заменяем значение параметра [ТаблДок].НомерГТД на [Номенклатура].НомерГТД (параметр [Номенклатура] у нас уже определен в стандартном файле настроек)

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

Config vo2 002.png

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

Config vo2 003.png

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

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

Диагностика

В протоколе проверки выдается ошибка:

"Неправильный текст запроса.
({(14, 2)}: Таблица не найдена ""Документ.КорректировкаРеализации""
<<?>>Документ.КорректировкаРеализации КАК КорректировкаРеализации)"

Т.о., мы понимаем, что в БД нет документа КорректировкаРеализации.

Решение

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

Второй вариант - документы данного типа ведутся, но называются по-другому, например "КорректировкаРеализацииТоваров". В этом случае создаем новый пользовательский файл настроек по имени документа и полностью заполняем его. За основу можно взять стандартный файл корректировки реализации и внести в него необходимые изменения.

Настройка

Бывают случаи, когда ошибок в файлах настроек нет, но клиент хочет чтобы при выгрузке или при загрузке документов определенные реквизиты рассчитывались нестандартным способом.

Изменение выгрузки документа

Изменение выгрузки существующего реквизита

Например, мы хотим, чтобы при выгрузке накладной сумма НДС бралась не из реквизита СуммаНДС табличной части Товары документа Реализация товаров и услуг, а рассчитывалась с помощью функции.

Для этого создаем пользовательский файл настроек. В пользовательском файле не должно быть лишних параметров - только тот, который мы хотим изменить, но должна соблюдаться структура вложенности узлов 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"?>
<ини>
    <мДокумент Имя="ПоступлениеТоваровУслуг">
        <Документ_Комментарий Вычислить="'Загружен с online.sbis.ru'">[Документ].Комментарий</Документ_Комментарий>
    </мДокумент>
</ини>

Немного сложнее - хотим в загружаемом документе заполнять реквизит "ПодразделениеОрганизации", который ссылается на справочник "ПодразделенияОрганизаций", всегда одним и тем же значением - Основным подразделением.

Для этого смотрим код этого подразделения в справочнике 1С. Пусть это будет код "000000001".

В пользовательский файл настроек необходимо добавить две строки (соблюдая структуру основного файла настроек):

<?xml version="1.0" encoding="utf-8"?>
<ини>
    <мДокумент Имя="ПоступлениеТоваровУслуг">
        <ПодразделениеОрганизаций Отбор_Код="'000000001'">Справочник.ПодразделенияОрганизаций</ПодразделениеОрганизаций>
        <Документ_ПодразделениеОрганизации Вычислить="[ПодразделениеОрганизаций]">[Документ].ПодразделениеОрганизации</Документ_ПодразделениеОрганизации>
    </мДокумент>
</ини>

Данная запись означает, что в справочнике "ПодразделенияОрганизаций" будет выбрана запись с кодом "000000001" и полученным значением будет заполнен реквизит документа "ПодразделениеОрганизации".

Аналогично можно заполнить реквизит определенным значением перечисления. Например, в документе поступления в 1С есть реквизит "ВариантРасчетаНДС", который выбирается из перечислений "ВариантыРасчетаНДС". Чтобы заполнить данный реквизит при загрузке документа значением перечисления "ВСумме" делаем пользовательский файл настроек:

<?xml version="1.0" encoding="utf-8"?>
<ини>
    <мДокумент Имя="ПоступлениеТоваровУслуг">
        <ВариантыРасчетаНДС>Перечисление.ВариантыРасчетаНДС</ВариантыРасчетаНДС>
        <ВариантРасчетаНДС Вычислить="[ВариантыРасчетаНДС].ВСумме">[Документ].ВариантРасчетаНДС</ВариантРасчетаНДС>
    </мДокумент>
</ини>

Более сложный вариант, когда реквизит надо заполнить не просто каким-то определенным значением перечисления, справочника или константой, а произвести определенные вычисления. В этом случае реквизит определяется с помощью функции, которую мы должны описать в модуле формы "РаботаСДокументами1С" обработки "ВнешниеФункции_Клиент.epf". Например, в загружаемом документе мы хотим заполнить "Ответственного" в зависимости от текущего пользователя. Для этого в файле настроек пишем:

<?xml version="1.0" encoding="utf-8"?>
<ини>
    <мДокумент Имя="ПоступлениеТоваровУслуг">
        <Ответственный Вычислить="{сбисОпределитьОтветственного()}">[Документ].Ответственный</Ответственный>
    </мДокумент>
</ини>

А в обработке "ВнешниеФункции_Клиент.epf" описываем функцию сбисОпределитьОтветственного(), которая в зависимости от тех или иных условий должна вернуть нужную нам запись справочника "Пользователи".