Добавить поля в выгрузку из СБИСа

1. rujiy_kot 11 16.05.19 18:58 Сейчас в теме +2 $m
Есть обработка СБИСа.
Выгрузка реализаций и счетов-фактур настроена.
Контрагенту необходимо добавить поля в выгрузку накладной:
- номер заказа (определяется по основанию (сделке)),
- отсрочка платежа (поле с фиксированным текстом),
- штрих-код (для табличной части, определяется по номенклатуре).
(Такие требования у Призмы)
По сообщениям в интернете обработку менять нельзя. Всё необходимо сделать настройками через ini-файлы, без изменения обработки СБИСа.
Делал по инструкции:
http://wiki.razgovorov.ru/index.php/Настройка_внешней_обработки_СБИС_для_1С_8.х
Добавил новый ini-файл без постфикса sbis, для документа "Реализации товаров и услуг", настройки СБИСа показывает, что настройки реализации изменены, но при выгрузке Реализации в файл формируется два документа в формате xml (накладная и СФ), но каждый раз никаких изменений.
Как я только не пробовал писать, делал по аналогии с примерами (выше по ссылке), но подобные изменения никак не влияют на выходной файл.
Я не понимаю, что делаю не так...
<?xml version="1.0" encoding="utf-8"?>
<ини>
<мФайл Имя="ЭДОНакл">
<мТаблДок Имя="Товары">
<СуммаНДС>11111</СуммаНДС>
</мТаблДок>
</мФайл>
</ини>
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
5. rujiy_kot 11 20.05.19 08:51 Сейчас в теме
Кому интересно или кто случайно найдёт по поиску эту тёму.
Вот код XML файла ВО82УТ10_РеализацияТоваровУслуг.XML
<?xml version="1.0" encoding="utf-8"?>
<ини>
    <мФайл Имя="ЭДОНакл">
	<мПараметр Имя="Заказ">
		<Параметр_Имя>'Заказ'</Параметр_Имя>
		<Параметр_Значение>[Документ].сбисНомерЗаявки</Параметр_Значение>
	</мПараметр>
	<мПараметр Имя="Отсрочка">
		<Параметр_Имя>'Отсрочка'</Параметр_Имя>
		<Параметр_Значение>'K010'</Параметр_Значение>
	</мПараметр>
	<мТаблДок Имя="Товары">
            	<мПараметр Имя="Штрихкод">
                	<Параметр_Имя>'Штрих-код'</Параметр_Имя>
	                <Параметр_Значение>{сбисПолучитьШтрихКод()}</Параметр_Значение>
 		</мПараметр>
        </мТаблДок>
    </мФайл>
</ини>
Показать


Вот код обработки: ВнешниеФункции_Клиент, формы: РаботаСДокументами1С

Функция сбисПолучитьШтрихКод(Контекст) Экспорт
	
	Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ
	               |	Штрихкоды.Штрихкод
	               |ИЗ
	               |	РегистрСведений.Штрихкоды КАК Штрихкоды
	               |ГДЕ
	               |	Штрихкоды.Владелец = &Владелец
	               |	И Штрихкоды.ЕдиницаИзмерения = &ЕдиницаИзмерения";
	Запрос.УстановитьПараметр("Владелец",Контекст.Номенклатура);
	Запрос.УстановитьПараметр("ЕдиницаИзмерения",Контекст.ЕдИзмНоменклатуры);
	
	Результат = Запрос.Выполнить().Выбрать();
	
	Если Результат.Следующий() Тогда
		Возврат Результат.Штрихкод;
	Иначе
		Сообщить("По номенклатуре: " + Контекст.Номенклатура + " и единице измерения: " + Контекст.ЕдИзмНоменклатуры + " не найден Штрих-код! В файл ШК не выгружен");
		Возврат "";	
	КонецЕсли;	
	
КонецФункции
Показать

Оба файла нужно положить в каталог со сбисом.
1CrUDOLF; musatov1c.ru; tech96; freeek; +4 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. uriah 17 16.05.19 21:20 Сейчас в теме
Какая платформа, конфигурация, релиз, стандартная или переписанная? Мало данных!
3. rujiy_kot 11 17.05.19 08:44 Сейчас в теме
(2) сверху в тегах - "1С:Управление торговлей 10", в сообщение действительно не написал.
УТ 10.3.
Но обработка СБИСа уже сама адаптируется к конфигурации. Важно понимать как править эти ini-файлы.
4. Sergio_S11 17.05.19 16:38 Сейчас в теме
(3) А в обработке ВнешниеФункции_Клиент ты свой ini подцепил?
My Webpage
6. rujiy_kot 11 20.05.19 08:57 Сейчас в теме
(4) А Вы автор этого вики?
Нет, не подцеплял, решение нашёл методом проб и ошибок.
Из моих ошибок было - значения нужно писать в одинарных кавычках - '.
Новые поля нужно было писать через: мПараметр, его имя и значения.
5. rujiy_kot 11 20.05.19 08:51 Сейчас в теме
Кому интересно или кто случайно найдёт по поиску эту тёму.
Вот код XML файла ВО82УТ10_РеализацияТоваровУслуг.XML
<?xml version="1.0" encoding="utf-8"?>
<ини>
    <мФайл Имя="ЭДОНакл">
	<мПараметр Имя="Заказ">
		<Параметр_Имя>'Заказ'</Параметр_Имя>
		<Параметр_Значение>[Документ].сбисНомерЗаявки</Параметр_Значение>
	</мПараметр>
	<мПараметр Имя="Отсрочка">
		<Параметр_Имя>'Отсрочка'</Параметр_Имя>
		<Параметр_Значение>'K010'</Параметр_Значение>
	</мПараметр>
	<мТаблДок Имя="Товары">
            	<мПараметр Имя="Штрихкод">
                	<Параметр_Имя>'Штрих-код'</Параметр_Имя>
	                <Параметр_Значение>{сбисПолучитьШтрихКод()}</Параметр_Значение>
 		</мПараметр>
        </мТаблДок>
    </мФайл>
</ини>
Показать


Вот код обработки: ВнешниеФункции_Клиент, формы: РаботаСДокументами1С

Функция сбисПолучитьШтрихКод(Контекст) Экспорт
	
	Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ
	               |	Штрихкоды.Штрихкод
	               |ИЗ
	               |	РегистрСведений.Штрихкоды КАК Штрихкоды
	               |ГДЕ
	               |	Штрихкоды.Владелец = &Владелец
	               |	И Штрихкоды.ЕдиницаИзмерения = &ЕдиницаИзмерения";
	Запрос.УстановитьПараметр("Владелец",Контекст.Номенклатура);
	Запрос.УстановитьПараметр("ЕдиницаИзмерения",Контекст.ЕдИзмНоменклатуры);
	
	Результат = Запрос.Выполнить().Выбрать();
	
	Если Результат.Следующий() Тогда
		Возврат Результат.Штрихкод;
	Иначе
		Сообщить("По номенклатуре: " + Контекст.Номенклатура + " и единице измерения: " + Контекст.ЕдИзмНоменклатуры + " не найден Штрих-код! В файл ШК не выгружен");
		Возврат "";	
	КонецЕсли;	
	
КонецФункции
Показать

Оба файла нужно положить в каталог со сбисом.
1CrUDOLF; musatov1c.ru; tech96; freeek; +4 Ответить
7. AneJIbcuH 37 27.04.23 11:06 Сейчас в теме
А как можно вставлять доп. поля при определенных условиях? Например, для такого-то контрагента (даже по ИНН). Никто не сталкивался?
8. Aleks.spb 04.05.23 17:14 Сейчас в теме
(7) Делал через обработку "ВнешниеФукнции_Клиент" нужно создать форму из которой обрабатывается нужный вам тип документа отловить можно в самой обработке сбиса.

Далее во внешнюю обработку с имененем "ВнешниеФукнции_Клиент" помещаете данную форму и Функция сбисПослеФормированияДокумента (Док, Кэш, Контекст) Экспорт

В Контекст.Документ будет доступна ссылка на текущий документ 1С, откуда вы можете сравнить нужные вам реквизиты.

Далее в зависимости от того что вам нужно через обработку добавляете поля.

//Добавляем в иные сведения ИнфПолФХЖ1 
Док.Файл.Документ.Параметр.Добавить (Новый Структура ("Имя, Значение", "Договор", Реализация.ДоговорКонтрагента.Номер));

//Добавляем основание
ДопСвОсн = Новый Структура ();
		ДопСвОсн.Вставить("Название", 	"РО"); 
		ДопСвОсн.Вставить("Номер", 		 
                СПб_ОбщийМодуль.ПолучитьЧислоИзСтроки(ТекстКомментарияПечати, Ложь));
		ДопСвОсн.Вставить("НаимДокОтгр", НаимДокОтгрузки);
		ДопСвОсн.Вставить("Дата",  		Формат (СсылкаНаСделку.Дата, "ДФ=dd.MM.yyyy"));		
		Док.Файл.Документ.Основание.Вставить (0,ДопСвОсн);
Показать
evgefremov; +1 Ответить
9. AneJIbcuH 37 05.05.23 10:15 Сейчас в теме
(8) Да, я уже таким же образом реализовал
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот