БП 3.0 выгрузка в сбербанк XML

1. ded20ded 20.07.14 13:40 Сейчас в теме
Выгружаю данные в формат сбербанка, результат 0 что нужно поправить?
+
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
13. baa50 12 22.07.14 21:04 Сейчас в теме
(1) ded20ded, Забыл спросить а чем вас первый вариант файла не устроил? его что банк не принял?
+
2. ded20ded 20.07.14 13:45 Сейчас в теме
получаю формат такой

<?xml version="1.0" encoding="windows-1251"?>
<СчетаПК xmlns="http://v8.1c.ru/edi/edi_stnd/109" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="СчетПК" ДатаФормирования="2014-07-20" НомерДоговора="11008888" ДатаДоговора="2014-04-23" НаименованиеОрганизации="Общество с ограниченной ответственностью "ОООО"" ИНН="3443928280" РасчетныйСчетОрганизации="40702810555000008890" БИК="041806647" ИдПервичногоДокумента="5cf3d361-0282-11e4-be73-74d435557f46" НомерРеестра="5" ДатаРеестра="2014-07-03">
<ЗачислениеЗарплаты>
<Сотрудник Нпп="1">
<Фамилия>Иванов</Фамилия>
<Имя>Сергей</Имя>
<Отчество>Александрович</Отчество>
<ЛицевойСчет>408178100188888888</ЛицевойСчет>
<Сумма>7920</Сумма>
<КодВалюты>643</КодВалюты>
</Сотрудник>
</ЗачислениеЗарплаты>
<ВидЗачисления>01</ВидЗачисления>
<КонтрольныеСуммы>
<КоличествоЗаписей>1</КоличествоЗаписей>
<СуммаИтого>7920</СуммаИтого>
</КонтрольныеСуммы>
</СчетаПК>
+
12. baa50 12 22.07.14 21:02 Сейчас в теме
(2) ded20ded, если очень интересно то обратите внимание на это ОбщийМодуль.ОбменСБанкамиПоЗарплатнымПроектамПереопределяемый.Модуль
но вам достаточно Справочники -> ЗарплатныеПроекты выбираете ваш проект, открываете его, находите поле формат файла (судя по посту 2) выбираете Стандарт ЭОИ с банком (версия 1)проверяете полученный файл, спускаетесь в магазин берете пиво (минимум 1 литр) пьете его. И будет вам счастье.


(4) Cooler, зачем же хамить и давать не верные советы, и даже не извиняться??? судя по вашим публикациям (коих ноль) вы тоже очень сильны. Как вы даете совет бросить это дело, позвольте и мне дать Вам совет также бросить флудить на данном форуме. Каждый из нас думает что он всех ежей голым задом передавит, а сами-то .....
fastax; +1
3. ded20ded 20.07.14 13:53 Сейчас в теме
как привести к варианту

Приложение 3. Пример реестра на зачисление заработной платы.
<?xml version="1.0" encoding="windows-1251" ?>
<СчетаПК ДатаФормирования="2011-08-15" НомерДоговора="12365478"
НаименованиеОрганизации="ООО Ромашка" ИНН="1234567890"
РасчетныйСчетОрганизации="40702810738991234567" БИК="044525225"
ИдПервичногоДокумента="ea5d494f-a5ff-11e0-8712-00137736ddb6">
<ЗачислениеЗарплаты>
<Сотрудник Нпп="1">
<Фамилия>Петров</Фамилия>
<Имя>Петр</Имя>
<Отчество>Петрович</Отчество>
<ОтделениеБанка>6901</ОтделениеБанка>
<ЛицевойСчет>40817810738991234567</ЛицевойСчет>
<Сумма>10000.31</Сумма>
</Сотрудник>
<Сотрудник Нпп="2">
<Фамилия>Иванов</Фамилия>
<Имя>Иван</Имя>
<Отчество>Иванович</Отчество>
<ОтделениеБанка>6901</ОтделениеБанка>
<ЛицевойСчет>40817810738997654321</ЛицевойСчет>
<Сумма>15000.42</Сумма>
</Сотрудник>
</ЗачислениеЗарплаты>
<КонтрольныеСуммы>
<КоличествоЗаписей>2</КоличествоЗаписей>
<СуммаИтого>25000.73</СуммаИтого>
</КонтрольныеСуммы>
</СчетаПК>
+
4. Cooler 22 20.07.14 14:26 Сейчас в теме
Варианты:
1. Исправить код процедуры выгрузки.
2. Использовать внешнюю обработку.
+
5. baa50 12 20.07.14 16:36 Сейчас в теме
вы формат выгрузки выбрали 3.3?, и если вы пользуетесь клиентом бизнес онлайн, вам в дополнительно нужно просто загрузить реестр, либо вы можете только список выгружать из 1с и подгружать в созданный реестр
+
6. ded20ded 20.07.14 16:49 Сейчас в теме
(5) где выбирается формат?
+
7. baa50 12 20.07.14 19:17 Сейчас в теме
извините ввел в заблуждение это в зуп есть возможность выбрать формат, а для сбербанка 1с утверждает что этот (который у вас получается) совместно разработан.
+
8. ded20ded 21.07.14 13:46 Сейчас в теме
Перерыл все не могу понять как файл формируется, подскажите плиз
// Формирует и прикрепляет файл обмена к документам с помощью подсистемы "Файлы"
//
// Параметры:
//		МассивДокументов - Массив ссылок на документы, по которым требуется сформировать файл
//		МассивОписанийФайлов - Массив описаний сформированных файлов
//
Процедура ВыгрузитьФайлыДляОбменаСБанком(МассивДокументов, МассивОписанийФайлов, ПлатежныйДокумент = Неопределено) Экспорт
	
	Отказ = Ложь;
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("МассивДокументов", МассивДокументов);
	Запрос.УстановитьПараметр("ПлатежныйДокумент", ПлатежныйДокумент);
	
	Запрос.Текст =
	"ВЫБРАТЬ
	|	ВедомостьНаВыплатуЗарплатыВБанк.Ссылка КАК Ведомость,
	|	ВедомостьНаВыплатуЗарплатыВБанк.ЗарплатныйПроект КАК ЗарплатныйПроект,
	|	ВедомостьНаВыплатуЗарплатыВБанк.Проведен КАК Проведен,
	|	ПлатежныеДокументыПеречисленияЗарплаты.ПлатежныйДокумент КАК ПлатежныйДокумент
	|ИЗ
	|	Документ.ВедомостьНаВыплатуЗарплатыВБанк КАК ВедомостьНаВыплатуЗарплатыВБанк
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПлатежныеДокументыПеречисленияЗарплаты КАК ПлатежныеДокументыПеречисленияЗарплаты
	|		ПО ВедомостьНаВыплатуЗарплатыВБанк.Ссылка = ПлатежныеДокументыПеречисленияЗарплаты.Ведомость
	|			И (ПлатежныеДокументыПеречисленияЗарплаты.ПлатежныйДокумент <> &ПлатежныйДокумент)
	|ГДЕ
	|	ВедомостьНаВыплатуЗарплатыВБанк.Ссылка В(&МассивДокументов)";
	
	ЗарплатныйПроект = Неопределено;
	ВДокументахОдинЗарплатныйПроект = Истина;
	Выборка = Запрос.Выполнить().Выбрать();
	Пока Выборка.Следующий() Цикл
		Если ЗначениеЗаполнено(Выборка.ПлатежныйДокумент) Тогда
			ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = '%1 уже включена в %2'"),
				Выборка.Ведомость, Выборка.ПлатежныйДокумент);
			ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки, Выборка.ПлатежныйДокумент, , , Отказ);
		КонецЕсли;
		Если Не Выборка.Проведен Тогда
			ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
					НСтр("ru = 'Документ %1 не проведен.'"), Выборка.Ведомость);
			ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки, Выборка.Ведомость,,, Отказ);
		КонецЕсли;
		Если ЗарплатныйПроект = Неопределено Тогда
			ЗарплатныйПроект = Выборка.ЗарплатныйПроект;
		ИначеЕсли ЗарплатныйПроект <> Выборка.ЗарплатныйПроект Тогда
			ВДокументахОдинЗарплатныйПроект = Ложь;
		КонецЕсли;
		Если НЕ ОбменСБанкамиПоЗарплатнымПроектам.ИспользоватьЭОИСБанком(Выборка.ЗарплатныйПроект) Тогда
			Если ЗначениеЗаполнено(Выборка.ЗарплатныйПроект) Тогда
				ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
					НСтр("ru = 'По зарплатному проекту %1 не используется обмен электронными документами с банком.'"),
					Выборка.ЗарплатныйПроект);
			Иначе
				ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
					НСтр("ru = 'В документе %1 не выбран зарплатный проект.'"), Выборка.Ведомость);
			КонецЕсли;
			ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
					ТекстСообщения, Выборка.ЗарплатныйПроект, "ИспользоватьЭлектронныйДокументооборотСБанком",,Отказ);
		КонецЕсли;
	КонецЦикла;
	Если ПлатежныйДокумент <> Неопределено Тогда
		Если НЕ ПлатежныйДокумент.Проведен Тогда
			ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
					НСтр("ru = 'Документ %1 не проведен.'"), ПлатежныйДокумент);
			ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки, ПлатежныйДокумент,,, Отказ);
		КонецЕсли;
		
		Если Не ВДокументахОдинЗарплатныйПроект Тогда
			ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
					НСтр("ru = 'В документе %1 присутствуют ведомости с разными зарплатными проектами. Файл по документу не сформирован.'"), ПлатежныйДокумент);
			ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки, Выборка.Ведомость,,, Отказ);
		КонецЕсли;
	КонецЕсли;
	
	Если Отказ Тогда
		Возврат;
	КонецЕсли;
	
	ВидОперации = "ВедомостьНаВыплатуЗарплатыВБанк";
	ДатаПолученияДанных = ТекущаяДатаСеанса();
	СтруктураПараметровДляФормированияФайла = Новый Структура;
	СтруктураПараметровДляФормированияФайла.Вставить("ВидОперации", ВидОперации);
	СтруктураПараметровДляФормированияФайла.Вставить("ДанныеШапки", ДанныеШапкиДокументовДляПолученияТекстаФайла(МассивДокументов, ДатаПолученияДанных, ПлатежныйДокумент));
	СтруктураПараметровДляФормированияФайла.Вставить("ДанныеСтрок", ДанныеСтрокДокументовДляПолученияТекстаФайла(МассивДокументов, ДатаПолученияДанных, ПлатежныйДокумент));
	СтруктураПараметровДляФормированияФайла.Вставить("КорневыеСвойства", ОбменСБанкамиПоЗарплатнымПроектам.КорневыеСвойства(ВидОперации));
	СтруктураПараметровДляФормированияФайла.Вставить("СоответствиеПолейФайла", ОбменСБанкамиПоЗарплатнымПроектам.СоответствиеПолейФайла(ВидОперации));
	СтруктураПараметровДляФормированияФайла.Вставить("ОбязательныеПоляФайла", ОбменСБанкамиПоЗарплатнымПроектам.ОбязательныеПоляФайла(ВидОперации));
	СтруктураПараметровДляФормированияФайла.Вставить("СоответствиеПреобразованияЗначений", ОбменСБанкамиПоЗарплатнымПроектам.СоответствиеПреобразованияЗначений(ВидОперации));
	СтруктураПараметровДляФормированияФайла.Вставить("СоответствиеТипов", ОбменСБанкамиПоЗарплатнымПроектам.СоответствиеТипов(ВидОперации));
	СтруктураПараметровДляФормированияФайла.Вставить("ПлатежныйДокумент", ПлатежныйДокумент);
	
	ОбменСБанкамиПоЗарплатнымПроектам.СоздатьФайлыДляОбменаСБанком(МассивДокументов, МассивОписанийФайлов, СтруктураПараметровДляФормированияФайла);
	
КонецПроцедуры

// Получает данные документов для формирования файла обмена
//
// Параметры:
//		МассивДокументов - Массив ссылок на документы, по которым требуется получить данные
//		ДатаПолученияДанных - дата формирования файла
//		ПлатежныйДокумент - Ссылка на платежный документ, в который входят ведомости
//
// Возвращаемое значение:
//		Таблица значений "ДанныеШапкиДокумента" - содержит данные документа
//
Функция ДанныеШапкиДокументовДляПолученияТекстаФайла(МассивДокументов, ДатаПолученияДанных, ПлатежныйДокумент = Неопределено)
	
	Запрос = Новый Запрос;
	
	Запрос.УстановитьПараметр("ВедомостиНаВыплатуЗарплатыВБанк", МассивДокументов);
	
	Запрос.Текст =
	"ВЫБРАТЬ
	|	ВедомостьНаВыплатуЗарплатыВБанк.Ссылка КАК Документ,
	|	ВедомостьНаВыплатуЗарплатыВБанк.Номер КАК НомерДокумента,
	|	ВедомостьНаВыплатуЗарплатыВБанк.Дата КАК ДатаДокумента,
	|	ВЫБОР
	|		КОГДА Организации.НаименованиеПолное ПОДОБНО """"
	|			ТОГДА Организации.Наименование
	|		ИНАЧЕ Организации.НаименованиеПолное
	|	КОНЕЦ КАК ПолноеНаименованиеОрганизации,
	|	Организации.ИНН КАК ИННОрганизации,
	|	ЗарплатныеПроекты.Ссылка КАК ЗарплатныйПроект,
	|	ЗарплатныеПроекты.НомерДоговора КАК НомерДоговора,
	|	ЗарплатныеПроекты.ДатаДоговора КАК ДатаДоговора,
	|	ЗарплатныеПроекты.ОтделениеБанка КАК ОтделениеБанка,
	|	Банки.Код КАК БИКБанка,
	|	ЗарплатныеПроекты.РасчетныйСчет КАК НомерРасчетногоСчетаОрганизации,
	|	ЗарплатныеПроекты.ФорматФайла КАК ФорматФайла,
	|	""01"" КАК ВидЗачисления,
	|	ИтоговыеДанныеПоВедомости.КоличествоЗаписей,
	|	ИтоговыеДанныеПоВедомости.СуммаИтого
	|ИЗ
	|	Документ.ВедомостьНаВыплатуЗарплатыВБанк КАК ВедомостьНаВыплатуЗарплатыВБанк
	|		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации КАК Организации
	|		ПО ВедомостьНаВыплатуЗарплатыВБанк.Организация = Организации.Ссылка
	|		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ЗарплатныеПроекты КАК ЗарплатныеПроекты
	|		ПО ВедомостьНаВыплатуЗарплатыВБанк.ЗарплатныйПроект = ЗарплатныеПроекты.Ссылка
	|		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Банки КАК Банки
	|		ПО (ЗарплатныеПроекты.Банк = Банки.Ссылка)
	|		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
	|			ДанныеВедомостейДляОплатыЧерезБанк.Ссылка КАК Ведомость,
	|			КОЛИЧЕСТВО(ДанныеВедомостейДляОплатыЧерезБанк.Сотрудник.ФизическоеЛицо) КАК КоличествоЗаписей,
	|			СУММА(ДанныеВедомостейДляОплатыЧерезБанк.КВыплате) КАК СуммаИтого
	|		ИЗ
	|			Документ.ВедомостьНаВыплатуЗарплатыВБанк.Зарплата КАК ДанныеВедомостейДляОплатыЧерезБанк
	|		ГДЕ
	|			ДанныеВедомостейДляОплатыЧерезБанк.Ссылка В(&ВедомостиНаВыплатуЗарплатыВБанк)
	|		
	|		СГРУППИРОВАТЬ ПО
	|			ДанныеВедомостейДляОплатыЧерезБанк.Ссылка) КАК ИтоговыеДанныеПоВедомости
	|		ПО ВедомостьНаВыплатуЗарплатыВБанк.Ссылка = ИтоговыеДанныеПоВедомости.Ведомость
	|ГДЕ
	|	ВедомостьНаВыплатуЗарплатыВБанк.Проведен
	|	И ВедомостьНаВыплатуЗарплатыВБанк.Ссылка В(&ВедомостиНаВыплатуЗарплатыВБанк)";
	
	ДанныеШапкиДокумента = Запрос.Выполнить().Выгрузить();
	
	// ИдПервичногоДокумента
	ДанныеШапкиДокумента.Колонки.Добавить("ИдПервичногоДокумента");
	
	// Номер и дата платежного поручения
	ДанныеШапкиДокумента.Колонки.Добавить("НомерПлатежногоПоручения");
	ДанныеШапкиДокумента.Колонки.Добавить("ДатаПлатежногоПоручения");
	
	// ДатаФормирования
	ДанныеШапкиДокумента.Колонки.Добавить("ДатаФормирования");
	
	// ИмяФайла
	ДанныеШапкиДокумента.Колонки.Добавить("ИмяФайла");
	
	// ДанныеРеестра
	ДанныеШапкиДокумента.Колонки.Добавить("ДанныеРеестра");
	
	РеквизитыПлатежногоДокумента = Неопределено;
	Если ПлатежныйДокумент <> Неопределено Тогда 
		РеквизитыПлатежногоДокумента = Новый Структура("ПлатежныйДокумент, Номер, Дата", ПлатежныйДокумент, "", ДатаПолученияДанных);
		Выборка = РегистрыСведений.РеквизитыПлатежныхДокументовПеречисленияЗарплаты.Выбрать(Новый Структура("ПлатежныйДокумент", ПлатежныйДокумент));
		Если Выборка.Следующий() Тогда 
			ЗаполнитьЗначенияСвойств(РеквизитыПлатежногоДокумента, Выборка);
		КонецЕсли;
	КонецЕсли;
	
	НомераРеестров = НомераРеестровДокументов(ДанныеШапкиДокумента, РеквизитыПлатежногоДокумента);
	
	КоличествоЗаписей = Неопределено;
	СуммаИтого = Неопределено;
	Для каждого СтрокаДанных Из ДанныеШапкиДокумента Цикл
		Если КоличествоЗаписей = Неопределено Тогда
			КоличествоЗаписей = ДанныеШапкиДокумента.Итог("КоличествоЗаписей");
		КонецЕсли;
		Если СуммаИтого = Неопределено Тогда
			СуммаИтого = ДанныеШапкиДокумента.Итог("СуммаИтого");
		КонецЕсли;
		СтрокаДанных.ДатаФормирования = ДатаПолученияДанных;
		Если ПлатежныйДокумент <> Неопределено Тогда
			СтрокаДанных.ИдПервичногоДокумента = ПлатежныйДокумент.УникальныйИдентификатор();
			СтрокаДанных.НомерПлатежногоПоручения = РеквизитыПлатежногоДокумента.Номер;
			СтрокаДанных.ДатаПлатежногоПоручения = РеквизитыПлатежногоДокумента.Дата;
			СтрокаДанных.ДатаДокумента = РеквизитыПлатежногоДокумента.Дата;
			СтрокаДанных.КоличествоЗаписей = КоличествоЗаписей;
			СтрокаДанных.СуммаИтого = СуммаИтого;
			СтрокаДанных.ДанныеРеестра = НомераРеестров[ПлатежныйДокумент];
			НомерРеестра = СтрЗаменить(СтрокаДанных.ДанныеРеестра.НомерРеестра, Символы.НПП, "");
			СтрокаДанных.НомерДокумента = НомерРеестра;
			НомерРеестра = СтроковыеФункцииКлиентСервер.ДополнитьСтроку(НомерРеестра, 2);
			СтрокаДанных.ИмяФайла = ОбменСБанкамиПоЗарплатнымПроектам.ИмяФайлаОбменаСБанкамиПоЗарплатнымПроектам(ПлатежныйДокумент, "f", СтрокаДанных.ОтделениеБанка, НомерРеестра, "z");
		Иначе
			СтрокаДанных.ИдПервичногоДокумента = СтрокаДанных.Документ.УникальныйИдентификатор();
			СтрокаДанных.ДанныеРеестра = НомераРеестров[СтрокаДанных.Документ];
			НомерРеестра = СтрЗаменить(СтрокаДанных.ДанныеРеестра.НомерРеестра, Символы.НПП, "");
			СтрокаДанных.НомерДокумента = НомерРеестра;
			НомерРеестра = СтроковыеФункцииКлиентСервер.ДополнитьСтроку(НомерРеестра, 2);
			СтрокаДанных.ИмяФайла = ОбменСБанкамиПоЗарплатнымПроектам.ИмяФайлаОбменаСБанкамиПоЗарплатнымПроектам(СтрокаДанных.Документ, "f", СтрокаДанных.ОтделениеБанка, НомерРеестра, "z");
		КонецЕсли;
		ОбменСБанкамиПоЗарплатнымПроектамПереопределяемый.ЗаполнитьДанныеОплатыВедомостей(
			СтрокаДанных.Документ, СтрокаДанных.НомерПлатежногоПоручения, СтрокаДанных.ДатаПлатежногоПоручения, ПлатежныйДокумент);
		
		ОбменСБанкамиПоЗарплатнымПроектамПереопределяемый.ОпределитьДанныеШапкиДокументаДляПолученияТекстаФайла(СтрокаДанных, СтрокаДанных.Документ, ДатаПолученияДанных);
		
	КонецЦикла;
	
	Возврат ДанныеШапкиДокумента;
	
КонецФункции

// Определяет номера реестров для документов
//
Функция НомераРеестровДокументов(ТаблицаДокументов, РеквизитыПлатежногоДокумента)

	ДокументыВыгрузки = Новый Массив;
	
	ГодыВыгрузки = Новый Массив;
	УникальныеГодыВыгрузки = Новый Соответствие;
	
	Если РеквизитыПлатежногоДокумента = Неопределено Тогда 
		Для Каждого ДанныеШапки Из ТаблицаДокументов Цикл 
			ДокументыВыгрузки.Добавить(ДанныеШапки.Документ);
			ГодВыгрузки = Год(ДанныеШапки.ДатаДокумента);
			Если УникальныеГодыВыгрузки[ГодВыгрузки] = Неопределено Тогда 
				УникальныеГодыВыгрузки.Вставить(ГодВыгрузки, Истина);
				ГодыВыгрузки.Добавить(ГодВыгрузки);
			КонецЕсли;
		КонецЦикла;
	Иначе 
		ДокументыВыгрузки.Добавить(РеквизитыПлатежногоДокумента.ПлатежныйДокумент);
		ГодыВыгрузки.Добавить(Год(РеквизитыПлатежногоДокумента.Дата));
	КонецЕсли;
	
	УстановитьПривилегированныйРежим(Истина);
	
	Запрос = Новый Запрос;
	
	Запрос.УстановитьПараметр("ГодыВыгрузки", ГодыВыгрузки);
	Запрос.УстановитьПараметр("ДокументыВыгрузки", ДокументыВыгрузки);
	
	Запрос.Текст = "ВЫБРАТЬ
	               |	СостоянияДокументовЗачисленияЗарплаты.Документ,
	               |	СостоянияДокументовЗачисленияЗарплаты.Год,
	               |	СостоянияДокументовЗачисленияЗарплаты.НомерРеестра
	               |ПОМЕСТИТЬ ВТВыгружаемыеДокументы
	               |ИЗ
	               |	РегистрСведений.СостоянияДокументовЗачисленияЗарплаты КАК СостоянияДокументовЗачисленияЗарплаты
	               |ГДЕ
	               |	СостоянияДокументовЗачисленияЗарплаты.Документ В(&ДокументыВыгрузки)
	               |;
	               |
	               |////////////////////////////////////////////////////////////­////////////////////
	               |ВЫБРАТЬ
	               |	РеквизитыПлатежныхДокументовПеречисленияЗарплаты.Организация,
	               |	РеквизитыПлатежныхДокументовПеречисленияЗарплаты.Дата КАК Дата,
	               |	ВыгружаемыеДокументы.Документ,
	               |	ВыгружаемыеДокументы.Год,
	               |	ВыгружаемыеДокументы.НомерРеестра
	               |ИЗ
	               |	ВТВыгружаемыеДокументы КАК ВыгружаемыеДокументы
	               |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РеквизитыПлатежныхДокументовПеречисленияЗарплаты КАК РеквизитыПлатежныхДокументовПеречисленияЗарплаты
	               |		ПО ВыгружаемыеДокументы.Документ = РеквизитыПлатежныхДокументовПеречисленияЗарплаты.ПлатежныйДокумент
	               |
	               |ОБЪЕДИНИТЬ ВСЕ
	               |
	               |ВЫБРАТЬ
	               |	ВедомостьНаВыплатуЗарплатыВБанк.Организация,
	               |	ВедомостьНаВыплатуЗарплатыВБанк.Дата,
	               |	ВыгружаемыеДокументы.Документ,
	               |	ВыгружаемыеДокументы.Год,
	               |	ВыгружаемыеДокументы.НомерРеестра
	               |ИЗ
	               |	ВТВыгружаемыеДокументы КАК ВыгружаемыеДокументы
	               |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВедомостьНаВыплатуЗарплатыВБанк КАК ВедомостьНаВыплатуЗарплатыВБанк
	               |		ПО ВыгружаемыеДокументы.Документ = ВедомостьНаВыплатуЗарплатыВБанк.Ссылка
	               |
	               |УПОРЯДОЧИТЬ ПО
	               |	Дата";
				   
	Выборка = Запрос.Выполнить().Выбрать();			   
	
	Запрос.Текст = "ВЫБРАТЬ
	               |	СостоянияДокументовЗачисленияЗарплаты.Документ,
	               |	СостоянияДокументовЗачисленияЗарплаты.Год,
	               |	СостоянияДокументовЗачисленияЗарплаты.НомерРеестра
	               |ПОМЕСТИТЬ ВТВыгруженныеДокументы
	               |ИЗ
	               |	РегистрСведений.СостоянияДокументовЗачисленияЗарплаты КАК СостоянияДокументовЗачисленияЗарплаты
	               |ГДЕ
	               |	СостоянияДокументовЗачисленияЗарплаты.Год В(&ГодыВыгрузки)
	               |;
	               |
	               |////////////////////////////////////////////////////////////­////////////////////
	               |ВЫБРАТЬ
	               |	РеквизитыПлатежныхДокументовПеречисленияЗарплаты.Организация,
	               |	ВыгруженныеДокументы.Документ,
	               |	ВыгруженныеДокументы.Год,
	               |	ВыгруженныеДокументы.НомерРеестра
	               |ПОМЕСТИТЬ ВТДокументыПоОрганизациям
	               |ИЗ
	               |	ВТВыгруженныеДокументы КАК ВыгруженныеДокументы
	               |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РеквизитыПлатежныхДокументовПеречисленияЗарплаты КАК РеквизитыПлатежныхДокументовПеречисленияЗарплаты
	               |		ПО ВыгруженныеДокументы.Документ = РеквизитыПлатежныхДокументовПеречисленияЗарплаты.ПлатежныйДокумент
	               |
	               |ОБЪЕДИНИТЬ ВСЕ
	               |
	               |ВЫБРАТЬ
	               |	ВедомостьНаВыплатуЗарплатыВБанк.Организация,
	               |	ВыгруженныеДокументы.Документ,
	               |	ВыгруженныеДокументы.Год,
	               |	ВыгруженныеДокументы.НомерРеестра
	               |ИЗ
	               |	ВТВыгруженныеДокументы КАК ВыгруженныеДокументы
	               |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВедомостьНаВыплатуЗарплатыВБанк КАК ВедомостьНаВыплатуЗарплатыВБанк
	               |		ПО ВыгруженныеДокументы.Документ = ВедомостьНаВыплатуЗарплатыВБанк.Ссылка
	               |;
	               |
	               |////////////////////////////////////////////////////////////­////////////////////
	               |ВЫБРАТЬ
	               |	ДокументыПоОрганизациям.Организация,
	               |	ДокументыПоОрганизациям.Год,
	               |	МАКСИМУМ(ДокументыПоОрганизациям.НомерРеестра) КАК НомерРеестра
	               |ИЗ
	               |	ВТДокументыПоОрганизациям КАК ДокументыПоОрганизациям
	               |
	               |СГРУППИРОВАТЬ ПО
	               |	ДокументыПоОрганизациям.Организация,
	               |	ДокументыПоОрганизациям.Год";
	
	НомераРеестровОрганизаций = Запрос.Выполнить().Выгрузить();
	
	УстановитьПривилегированныйРежим(Ложь);
	
	НомераРеестров = Новый Соответствие;
	
	Пока Выборка.Следующий() Цикл 
		Год = Год(Выборка.Дата);
		ДанныеРеестра = Новый Структура("Год, НомерРеестра", Год, Выборка.НомерРеестра);
		Если Не ЗначениеЗаполнено(Выборка.Год) Или Выборка.Год <> Год Тогда 
			ДанныеДокумента = Новый Структура("Организация, Год", Выборка.Организация, Год);
			НайденныеСтроки = НомераРеестровОрганизаций.НайтиСтроки(ДанныеДокумента);
			Если НайденныеСтроки.Количество() = 0 Тогда
				ДанныеДокумента.Вставить("НомерРеестра", 1);
				ЗаполнитьЗначенияСвойств(НомераРеестровОрганизаций.Добавить(), ДанныеДокумента);
			Иначе 
				ДанныеДокумента.Вставить("НомерРеестра", НайденныеСтроки[0].НомерРеестра + 1);
				НайденныеСтроки[0].НомерРеестра = ДанныеДокумента.НомерРеестра;
			КонецЕсли;
			ДанныеРеестра.НомерРеестра = ДанныеДокумента.НомерРеестра;
		КонецЕсли;
		НомераРеестров.Вставить(Выборка.Документ, ДанныеРеестра);
	КонецЦикла;
	
	Возврат НомераРеестров;
	
КонецФункции

// Получает данные строк документа для формирования файла обмена
//
// Параметры:
//		МассивДокументов - Массив ссылок на документы, по которым требуется получить данные
//		ДатаПолученияДанных - дата формирования файла
//		ПлатежныйДокумент - Ссылка на платежный документ, в который входят ведомости
//
// Возвращаемое значение:
//		Таблица значений "ДанныеСтрокДокумента" - содержит данные строк документа
//
Функция ДанныеСтрокДокументовДляПолученияТекстаФайла(МассивДокументов, ДатаПолученияДанных, ПлатежныйДокумент = Неопределено)
	
	Запрос = Новый Запрос;
	Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
	Запрос.УстановитьПараметр("МассивДокументов", МассивДокументов);
	Запрос.УстановитьПараметр("ДатаПолученияДанных", ДатаПолученияДанных);
	
	Запрос.Текст = 
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
	|	&ДатаПолученияДанных КАК Период,
	|	ДанныеСотрудников.Сотрудник КАК Сотрудник
	|ПОМЕСТИТЬ ВТСписокСотрудников
	|ИЗ
	|	Документ.ВедомостьНаВыплатуЗарплатыВБанк.Зарплата КАК ДанныеСотрудников
	|ГДЕ
	|	ДанныеСотрудников.Ссылка В(&МассивДокументов)";
	
	Запрос.Выполнить();
	
	ОписательВременныхТаблиц = КадровыйУчет.ОписательВременныхТаблицДляСоздатьВТКадровыеДанныеСотруднико­в(Запрос.МенеджерВременныхТаблиц, "ВТСписокСотрудников");
	КадровыйУчет.СоздатьВТКадровыеДанныеСотрудников(ОписательВременныхТаблиц, Истина, "Фамилия,Имя,Отчество");
	
	Запрос.Текст =
	"ВЫБРАТЬ
	|	ВедомостьНаВыплатуЗарплатыВБанк.Ссылка КАК Документ,
	|	ВедомостьНаВыплатуЗарплатыВБанк.Номер КАК НомерДокумента,
	|	ВедомостьНаВыплатуЗарплатыВБанк.Дата КАК ДатаДокумента,
	|	ВедомостьНаВыплатуЗарплатыВБанкЗарплата.Сотрудник КАК Сотрудник,
	|	ВедомостьНаВыплатуЗарплатыВБанкЗарплата.Сотрудник.ФизическоеЛицо КАК ФизическоеЛицо,
	|	ВедомостьНаВыплатуЗарплатыВБанкЗарплата.НомерСтроки КАК НомерСтроки,
	|	КадровыеДанныеСотрудников.Фамилия КАК Фамилия,
	|	КадровыеДанныеСотрудников.Имя КАК Имя,
	|	КадровыеДанныеСотрудников.Отчество КАК Отчество,
	|	ВедомостьНаВыплатуЗарплатыВБанкЗарплата.НомерЛицевогоСчета КАК НомерЛицевогоСчета,
	|	ВедомостьНаВыплатуЗарплатыВБанкЗарплата.КВыплате КАК СуммаКВыплате,
	|	ЗарплатныеПроекты.ОтделениеБанка КАК ОтделениеБанка,
	|	ЗарплатныеПроекты.ФилиалОтделенияБанка КАК ФилиалОтделенияБанка,
	|	ЗарплатныеПроекты.Валюта.Код КАК КодВалюты
	|ИЗ
	|	Документ.ВедомостьНаВыплатуЗарплатыВБанк КАК ВедомостьНаВыплатуЗарплатыВБанк
	|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВедомостьНаВыплатуЗарплатыВБанк.Зарплата КАК ВедомостьНаВыплатуЗарплатыВБанкЗарплата
	|		ПО ВедомостьНаВыплатуЗарплатыВБанк.Ссылка = ВедомостьНаВыплатуЗарплатыВБанкЗарплата.Ссылка
	|		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ЗарплатныеПроекты КАК ЗарплатныеПроекты
	|		ПО ВедомостьНаВыплатуЗарплатыВБанк.ЗарплатныйПроект = ЗарплатныеПроекты.Ссылка
	|		ЛЕВОЕ СОЕДИНЕНИЕ ВТКадровыеДанныеСотрудников КАК КадровыеДанныеСотрудников
	|		ПО (ВедомостьНаВыплатуЗарплатыВБанкЗарплата.Сотрудник = КадровыеДанныеСотрудников.Сотрудник)
	|ГДЕ
	|	ВедомостьНаВыплатуЗарплатыВБанк.Проведен
	|	И ВедомостьНаВыплатуЗарплатыВБанк.Ссылка В(&МассивДокументов)";
	
	ДанныеСтрокДокументов = Запрос.Выполнить().Выгрузить();
	
	НомерСтроки = 0;
	ОбменСБанкамиПоЗарплатнымПроектамПереопределяемый.ДополнитьКолонкиДанныхСтрокДокументов(ДанныеСтрокДокументов);
	Для каждого СтрокаДокумента Из ДанныеСтрокДокументов Цикл
		Если ЗначениеЗаполнено(ПлатежныйДокумент) Тогда
			НомерСтроки = НомерСтроки + 1;
			СтрокаДокумента.НомерСтроки = НомерСтроки;
		КонецЕсли;
		ОбменСБанкамиПоЗарплатнымПроектамПереопределяемый.ЗаполнитьКолонкиДанныхСтрокДокумента(СтрокаДокумента);
		Если СтрДлина(СтрокаДокумента.НомерЛицевогоСчета) <> 20 Тогда
			СообщениеОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
					НСтр("ru='По ведомости в банк №%2 от %3г. в строке №%4 у сотрудника %5 лицевой счет менее 20 цифр.
						|Если номер действительно не удовлетворяет этому требованию, возможно,
						|банк не поддерживает обмен по типовому стандарту - следует обратиться в банк'"), 
					СтрокаДокумента.НомерДокумента, 
					Формат(СтрокаДокумента.ДатаДокумента, "ДЛФ=D"),
					СтрокаДокумента.НомерСтроки,
					СтрокаДокумента.ФизическоеЛицо);
			ОбщегоНазначенияКлиентСервер.СообщитьПользователю(СообщениеОбОшибке, СтрокаДокумента.Документ,
				СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
					НСтр("ru = 'Зарплата[%1].%2'"),
					СтрокаДокумента.НомерСтроки-1,
					"НомерЛицевогоСчета"));
		КонецЕсли;
	КонецЦикла;
	
	ОбменСБанкамиПоЗарплатнымПроектамПереопределяемый.ОпределитьДанныеСтрокДокументовДляПолученияТекстаФайла(ДанныеСтрокДокументов, ДатаПолученияДанных);
	
	Возврат ДанныеСтрокДокументов;
	
КонецФункции

#КонецОбласти

Показать
+
9. Cooler 22 21.07.14 14:24 Сейчас в теме
Перерыл все не могу понять как файл формируется
И не поймете: он формируется совсем в другом месте, ссылка вот тут:

ОбменСБанкамиПоЗарплатнымПроектам.СоздатьФайлыДляОбменаСБанком(МассивДокументов, МассивОписанийФайлов, СтруктураПараметровДляФормированияФайла);


подскажите плиз

Подсказываю: попробуйте сменить область деятельности, если вы даже таких вещей не понимаете.
+
10. ded20ded 21.07.14 15:04 Сейчас в теме
Вот в этой фунуции поля заполняются

Функция СоответствиеПолейФайла(ВидОперации, ФорматФайла = Неопределено) Экспорт
	
	СоответствиеПолей = Новый Соответствие;
	
	Если ВидОперации = "ВедомостьНаВыплатуЗарплатыВБанк" Тогда
		СоответствиеПолей.Вставить("ДатаФормирования", "ДатаФормирования");
		СоответствиеПолей.Вставить("НомерДоговора", "НомерДоговора");
		//СоответствиеПолей.Вставить("ДатаДоговора", "ДатаДоговора");
		СоответствиеПолей.Вставить("НаименованиеОрганизации", "ПолноеНаименованиеОрганизации");
		СоответствиеПолей.Вставить("ИНН", "ИННОрганизации");
		СоответствиеПолей.Вставить("РасчетныйСчетОрганизации", "НомерРасчетногоСчетаОрганизации");
		СоответствиеПолей.Вставить("БИК", "БИКБанка");
		СоответствиеПолей.Вставить("ИдПервичногоДокумента", "ИдПервичногоДокумента");
		//СоответствиеПолей.Вставить("НомерРеестра", "НомерДокумента");
		//СоответствиеПолей.Вставить("ДатаРеестра", "ДатаДокумента");
		
		СоответствиеЗачислениеЗарплаты = Новый Соответствие;
		СоответствиеЗачислениеЗарплаты.Вставить("Нпп", "НомерСтроки");
		СоответствиеЗачислениеЗарплаты.Вставить("Фамилия", "Фамилия");
		СоответствиеЗачислениеЗарплаты.Вставить("Имя", "Имя");
		СоответствиеЗачислениеЗарплаты.Вставить("Отчество", "Отчество");
		СоответствиеЗачислениеЗарплаты.Вставить("ОтделениеБанка", "ОтделениеБанка");
		СоответствиеЗачислениеЗарплаты.Вставить("ФилиалОтделенияБанка", "ФилиалОтделенияБанка");
		СоответствиеЗачислениеЗарплаты.Вставить("ЛицевойСчет", "НомерЛицевогоСчета");
		СоответствиеЗачислениеЗарплаты.Вставить("Сумма", "СуммаКВыплате");
		//СоответствиеЗачислениеЗарплаты.Вставить("КодВалюты", "КодВалюты");
		СоответствиеПолей.Вставить("ЗачислениеЗарплаты", СоответствиеЗачислениеЗарплаты);
		
		СоответствиеПолей.Вставить("ВидЗачисления", "ВидЗачисления");
		СоответствиеПолей.Вставить("ПлатежноеПоручение", "НомерПлатежногоПоручения");
		СоответствиеПолей.Вставить("ДатаПлатежногоПоручения", "ДатаПлатежногоПоручения");
		
		СоответствиеКонтрольныеСуммы = Новый Соответствие;
		СоответствиеКонтрольныеСуммы.Вставить("КоличествоЗаписей", "КоличествоЗаписей");
		СоответствиеКонтрольныеСуммы.Вставить("СуммаИтого", "СуммаИтого");
		СоответствиеПолей.Вставить("КонтрольныеСуммы", СоответствиеКонтрольныеСуммы);
		
	ИначеЕсли ВидОперации = "ЗаявкаНаОткрытиеЛицевыхСчетовСотрудников" Тогда
		
		СоответствиеПолей.Вставить("ДатаФормирования", "ДатаФормирования");
		СоответствиеПолей.Вставить("НомерДоговора", "НомерДоговора");
		СоответствиеПолей.Вставить("ДатаДоговора", "ДатаДоговора");
		СоответствиеПолей.Вставить("НаименованиеОрганизации", "ПолноеНаименованиеОрганизации");
		СоответствиеПолей.Вставить("ИНН", "ИННОрганизации");
		СоответствиеПолей.Вставить("РасчетныйСчетОрганизации", "НомерРасчетногоСчетаОрганизации");
		СоответствиеПолей.Вставить("БИК", "БИКБанка");
		СоответствиеПолей.Вставить("ИдПервичногоДокумента", "ИдПервичногоДокумента");
		СоответствиеПолей.Вставить("НомерРеестра", "НомерДокумента");
		СоответствиеПолей.Вставить("ДатаРеестра", "ДатаДокумента");
		
		СоответствиеОткрытиеСчетов = Новый Соответствие;
		СоответствиеОткрытиеСчетов.Вставить("Нпп", "НомерСтроки");
		СоответствиеОткрытиеСчетов.Вставить("Фамилия", "Фамилия");
		СоответствиеОткрытиеСчетов.Вставить("Имя", "Имя");
		СоответствиеОткрытиеСчетов.Вставить("Отчество", "Отчество");
		СоответствиеОткрытиеСчетов.Вставить("ОтделениеБанка", "ОтделениеБанка");
		СоответствиеОткрытиеСчетов.Вставить("ФилиалОтделенияБанка", "ФилиалОтделенияБанка");
		
		СоответствиеЭмбоссированныйТекст = Новый Соответствие;
		СоответствиеЭмбоссированныйТекст.Вставить("Поле1", "ЭмбоссированныйТекст1");
		СоответствиеЭмбоссированныйТекст.Вставить("Поле2", "ЭмбоссированныйТекст2");
		СоответствиеЭмбоссированныйТекст.Вставить("Поле3", "ЭмбоссированныйТекст3");
		СоответствиеОткрытиеСчетов.Вставить("ЭмбоссированныйТекст", СоответствиеЭмбоссированныйТекст);
		
		СоответствиеВидВклада = Новый Соответствие;
		СоответствиеВидВклада.Вставить("__content", "СистемаРасчетовПоБанковскимКартам");
		СоответствиеВидВклада.Вставить("КодВидаВклада", "КодВидаВклада");
		СоответствиеВидВклада.Вставить("КодПодвидаВклада", "КодПодвидаВклада");
		СоответствиеВидВклада.Вставить("КодВалюты", "КодВалютыВклада");
		СоответствиеОткрытиеСчетов.Вставить("ВидВклада", СоответствиеВидВклада);
		
		СоответствиеУдостоверениеЛичности = Новый Соответствие;
		СоответствиеУдостоверениеЛичности.Вставить("ВидДокумента", "ДокументВид");
		СоответствиеУдостоверениеЛичности.Вставить("Серия", "ДокументСерия");
		СоответствиеУдостоверениеЛичности.Вставить("Номер", "ДокументНомер");
		СоответствиеУдостоверениеЛичности.Вставить("ДатаВыдачи", "ДокументДатаВыдачи");
		СоответствиеУдостоверениеЛичности.Вставить("КемВыдан", "ДокументКемВыдан");
		СоответствиеУдостоверениеЛичности.Вставить("КодПодразделения", "ДокументКодПодразделения");
		СоответствиеУдостоверениеЛичности.Вставить("КодВидаДокумента", "КодВидаДокумента");
		СоответствиеОткрытиеСчетов.Вставить("УдостоверениеЛичности", СоответствиеУдостоверениеЛичности);
		
		УстановитьСоответствиеМестаРождения(СоответствиеОткрытиеСчетов, "МестоРождения", "МестоРождения");
		УстановитьСоответствиеАдреса(СоответствиеОткрытиеСчетов, "АдресМестаРаботы", "АдресМестаРаботы");
		УстановитьСоответствиеАдреса(СоответствиеОткрытиеСчетов, "АдресПрописки", "АдресПоПрописке");
		УстановитьСоответствиеАдреса(СоответствиеОткрытиеСчетов, "АдресПроживания", "АдресМестаПроживания");
		
		СоответствиеОткрытиеСчетов.Вставить("ДатаРождения", "ДатаРождения");
		СоответствиеОткрытиеСчетов.Вставить("Пол", "Пол");
		СоответствиеОткрытиеСчетов.Вставить("РабочийТелефон", "ТелефонРабочий");
		СоответствиеОткрытиеСчетов.Вставить("ДомашнийТелефон", "ТелефонДомашний");
		СоответствиеОткрытиеСчетов.Вставить("Сумма", "СуммаПервоначальногоПополнения");
		
		Если ФорматФайла <> Перечисления.ФорматыФайловОбменаПоЗарплатномуПроекту.Версия1 Тогда
			// версии старше 1 
			СоответствиеОткрытиеСчетов.Вставить("КодВалюты", "КодВалюты");
			СоответствиеОткрытиеСчетов.Вставить("Должность", "Должность");
			СоответствиеОткрытиеСчетов.Вставить("ПризнакЗарплатный", "ОплатаЗарплатнойКарты");
			СоответствиеОткрытиеСчетов.Вставить("КатегорияНаселения", "КатегорияНаселения");
			СоответствиеОткрытиеСчетов.Вставить("БонусПрограмма", "БонуснаяПрограмма");
			СоответствиеОткрытиеСчетов.Вставить("БонусУчастника", "НомерУчастникаБонуснойПрограммы");
			СоответствиеОткрытиеСчетов.Вставить("ТарифСледующийГод", "ТарифСледующийГод");
			СоответствиеОткрытиеСчетов.Вставить("ТарифТекущийГод", "ТарифТекущийГод");
			СоответствиеОткрытиеСчетов.Вставить("ПризнакРассылки", "СпособРассылкиОтчета");
			СоответствиеОткрытиеСчетов.Вставить("ИнтернетАдрес", "АдресЭлектроннойПочты");
			СоответствиеОткрытиеСчетов.Вставить("СчетДебета", "СчетДебета");
			СоответствиеОткрытиеСчетов.Вставить("ОператорСвязи", "ОператорСвязи");
			СоответствиеОткрытиеСчетов.Вставить("МобильныйТелефон", "НомерМобильногоТелефона");
			СоответствиеОткрытиеСчетов.Вставить("МобильныйБанк", "ТарифМобильногоБанка");
			СоответствиеОткрытиеСчетов.Вставить("ПередачаБКИ", "РазрешитьПередачуИнформацииВБКИ");
			СоответствиеОткрытиеСчетов.Вставить("КонтрольнаяИнформация", "КонтрольнаяИнформация");
			СоответствиеОткрытиеСчетов.Вставить("Резидент", "ЯвляетсяРезидентом");
			СоответствиеОткрытиеСчетов.Вставить("Гражданство", "Гражданство");
		КонецЕсли;
		
		Если ФорматФайла = Перечисления.ФорматыФайловОбменаПоЗарплатномуПроекту.Версия32 Тогда
			
			СоответствиеМиграционнаяКарта = Новый Соответствие;
			СоответствиеМиграционнаяКарта.Вставить("Номер", "НомерМиграционнойКарты");
			СоответствиеМиграционнаяКарта.Вставить("ДатаНачалаПребывания", "ДатаНачалаПребыванияМиграционнойКарты");
			СоответствиеМиграционнаяКарта.Вставить("ДатаОкончанияПребывания", "ДатаОкончанияПребыванияМиграционнойКарты");
			СоответствиеМиграционныйДокумент = Новый Соответствие;
			СоответствиеМиграционныйДокумент.Вставить("КодДокумента", "КодМиграционногоДокумента");
			СоответствиеМиграционныйДокумент.Вставить("НомерДокумента", "НомерМиграционногоДокумента");
			СоответствиеМиграционныйДокумент.Вставить("ДатаНачалаПребывания", "ДатаНачалаПребыванияМиграционногоДокумента");
			СоответствиеМиграционныйДокумент.Вставить("ДатаОкончанияПребывания", "ДатаОкончанияПребыванияМиграционногоДокумента");
			СоответствиеНерезидент = Новый Соответствие;
			СоответствиеНерезидент.Вставить("МиграционнаяКарта", СоответствиеМиграционнаяКарта);
			СоответствиеНерезидент.Вставить("МиграционныйДокумент", СоответствиеМиграционныйДокумент);
			СоответствиеОткрытиеСчетов.Вставить("Нерезидент", СоответствиеНерезидент);
			
			СоответствиеОткрытиеСчетов.Вставить("СуммаЗаработнойПлаты", "ПрогнозируемыйМесячныйДоход");
			СоответствиеОткрытиеСчетов.Вставить("ТабельныйНомер", "ТабельныйНомер");
			СоответствиеОткрытиеСчетов.Вставить("ДатаОформления", "ДатаПриема");
			СоответствиеОткрытиеСчетов.Вставить("ДатаВыплаты", "ДатаВыплатыЗарплаты");
			УстановитьСоответствиеАдреса(СоответствиеОткрытиеСчетов, "АдресИнформирования", "АдресДляИнформирования");
			
		КонецЕсли;
		
		СоответствиеПолей.Вставить("ОткрытиеСчетов", СоответствиеОткрытиеСчетов);
		
		СоответствиеКонтрольныеСуммы = Новый Соответствие;
		СоответствиеКонтрольныеСуммы.Вставить("КоличествоЗаписей", "КоличествоЗаписей");
		СоответствиеКонтрольныеСуммы.Вставить("СуммаИтого", "СуммаИтого");
		СоответствиеПолей.Вставить("КонтрольныеСуммы", СоответствиеКонтрольныеСуммы);
		
	ИначеЕсли ВидОперации = "ПодтверждениеЗачисленияЗарплаты" Тогда
		
		СоответствиеПолей.Вставить("Нпп", "НомерСтроки");
		СоответствиеПолей.Вставить("ДатаФормирования", "ДатаФормирования");
		СоответствиеПолей.Вставить("Фамилия", "Фамилия");
		СоответствиеПолей.Вставить("Имя", "Имя");
		СоответствиеПолей.Вставить("Отчество", "Отчество");
		СоответствиеПолей.Вставить("ЛицевойСчет", "НомерЛицевогоСчета");
		СоответствиеПолей.Вставить("Результат", "РезультатЗачисленияЗарплаты");
		СоответствиеПолей.Вставить("Сумма", "Сумма");
		СоответствиеПолей.Вставить("РасшифровкаРезультата", "КомментарийРезультата");
		
	ИначеЕсли ВидОперации = "ПодтверждениеОткрытияЛицевыхСчетовСотрудников" Тогда
		
		СоответствиеПолей.Вставить("Нпп", "НомерСтроки");
		СоответствиеПолей.Вставить("ДатаФормирования", "ДатаФормирования");
		СоответствиеПолей.Вставить("Фамилия", "Фамилия");
		СоответствиеПолей.Вставить("Имя", "Имя");
		СоответствиеПолей.Вставить("Отчество", "Отчество");
		СоответствиеПолей.Вставить("ЛицевойСчет", "НомерЛицевогоСчета");
		СоответствиеПолей.Вставить("Результат", "РезультатОткрытияСчета");
		СоответствиеПолей.Вставить("Сумма", "Сумма");
		СоответствиеПолей.Вставить("РасшифровкаРезультата", "КомментарийРезультата");
		
		СоответствиеУдостоверениеЛичности = Новый Соответствие;
		СоответствиеУдостоверениеЛичности.Вставить("ВидДокумента", "ДокументВид");
		СоответствиеУдостоверениеЛичности.Вставить("КодВидаДокумента", "КодВидаДокумента");
		СоответствиеУдостоверениеЛичности.Вставить("Серия", "ДокументСерия");
		СоответствиеУдостоверениеЛичности.Вставить("Номер", "ДокументНомер");
		СоответствиеУдостоверениеЛичности.Вставить("ДатаВыдачи", "ДокументДатаВыдачи");
		СоответствиеУдостоверениеЛичности.Вставить("КемВыдан", "ДокументКемВыдан");
		СоответствиеУдостоверениеЛичности.Вставить("КодПодразделения", "ДокументКодПодразделения");
		СоответствиеПолей.Вставить("УдостоверениеЛичности", СоответствиеУдостоверениеЛичности);
		
	ИначеЕсли ВидОперации = "ЗаявкаНаЗакрытиеЛицевыхСчетовСотрудников" Тогда
		СоответствиеПолей.Вставить("ДатаФормирования", "ДатаФормирования");
		СоответствиеПолей.Вставить("НомерДоговора", "НомерДоговора");
		СоответствиеПолей.Вставить("ДатаДоговора", "ДатаДоговора");
		СоответствиеПолей.Вставить("НаименованиеОрганизации", "ПолноеНаименованиеОрганизации");
		СоответствиеПолей.Вставить("ИНН", "ИННОрганизации");
		СоответствиеПолей.Вставить("РасчетныйСчетОрганизации", "НомерРасчетногоСчетаОрганизации");
		СоответствиеПолей.Вставить("БИК", "БИКБанка");
		СоответствиеПолей.Вставить("ИдПервичногоДокумента", "ИдПервичногоДокумента");
		СоответствиеПолей.Вставить("НомерРеестра", "НомерДокумента");
		СоответствиеПолей.Вставить("ДатаРеестра", "ДатаДокумента");
		
		СоответствиеСпискаУвольнений = Новый Соответствие;
		СоответствиеСпискаУвольнений.Вставить("Нпп", "НомерСтроки");
		СоответствиеСпискаУвольнений.Вставить("Фамилия", "Фамилия");
		СоответствиеСпискаУвольнений.Вставить("Имя", "Имя");
		СоответствиеСпискаУвольнений.Вставить("Отчество", "Отчество");
		СоответствиеСпискаУвольнений.Вставить("ОтделениеБанка", "ОтделениеБанка");
		СоответствиеСпискаУвольнений.Вставить("ФилиалОтделенияБанка", "ФилиалОтделенияБанка");
		
		СоответствиеСпискаУвольнений.Вставить("ДатаУвольнения", "ДатаЗакрытия");
		СоответствиеСпискаУвольнений.Вставить("НомерСчета", "ЛицевойСчет");
		СоответствиеПолей.Вставить("СписокУвольнений", СоответствиеСпискаУвольнений);
		
		СоответствиеКонтрольныеСуммы = Новый Соответствие;
		СоответствиеКонтрольныеСуммы.Вставить("КоличествоЗаписей", "КоличествоЗаписей");
		СоответствиеКонтрольныеСуммы.Вставить("СуммаИтого", "СуммаИтого");
		СоответствиеПолей.Вставить("КонтрольныеСуммы", СоответствиеКонтрольныеСуммы);
		
	КонецЕсли;
	
	ОбменСБанкамиПоЗарплатнымПроектамПереопределяемый.ОпределитьСоответствиеПолейФайла(СоответствиеПолей, ВидОперации, ФорматФайла);
	
	Возврат СоответствиеПолей;
	
КонецФункции
Показать
+
11. ded20ded 21.07.14 15:05 Сейчас в теме
от куда вот эти данные берутся?

xmlns="http://v8.1c.ru/edi/edi_stnd/109" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="СчетПК"
+
14. ded20ded 23.07.14 06:48 Сейчас в теме
доброго все здравия, проблема решена:
1. Выбран вариант 1 обмена с банком (в настройках зарплатного проекта)
2. В Функция СоответствиеПолейФайла(ВидОперации, ФорматФайла = Неопределено) Экспорт, убрал или заремил поля которые не нужны.
//СоответствиеПолей.Вставить("НомерРеестра", "НомерДокумента"); 
//СоответствиеПолей.Вставить("ДатаРеестра", "ДатаДокумента");
и т.д.
Вот и все спасибо, всем, кто хотел помочь.
+
15. pavelyar 16.03.15 15:55 Сейчас в теме
Тоже самое только с подтверждением из банка,не принимает 1С ЗуП 3.0 и все тут =\
+
16. pavelyar 31.03.15 00:55 Сейчас в теме
Нашел решение, нужный формат был в 20 числах чета и <Результат>Зачислено</Результат>
+
17. sajmon 18.05.17 16:05 Сейчас в теме
В памятке Сбербанка указаны все поля, которые нужно соблюдать при заполнении. Выполнил все требования, ознакомился с рекомендациями, которые описали выше. Результат одинаковый, ошибка на скриншоте. Каким образом можно проверить xml файл перед тем как пытаться загрузить? К сожалению, в местом отделении сбербанка прокомментировать ошибку не могут и просят пробовать новые версии. Откуда их взять, если в ЗУП 3.1 они заканчиваются на версии 3.6

<?xml version="1.0" encoding="windows-1251" ?>
<СчетаПК ДатаФормирования="2013-01-28" НомерДоговора="41012344"
НаименованиеОрганизации="Общество с ограниченной ответственностью "Пример
"" ИНН="5107911234" РасчетныйСчетОрганизации="40817810455000000123"
БИК="044030123" ИдПервичногоДокумента="40623755-690f-11e2-8b6a-001bb1f84b12"
НомерРеестра="435" ДатаРеестра="2013-01-28">
<ЗачислениеЗарплаты>
<Сотрудник Нпп="1">
<Фамилия>Иванов</Фамилия>
<Имя>Анатолий</Имя>
<Отчество>Алексеевич</Отчество>
<ОтделениеБанка>9999</ОтделениеБанка>
<ФилиалОтделенияБанка>0</ФилиалОтделенияБанка>
<ЛицевойСчет>40817810055032551234</ЛицевойСчет>
<Сумма>4000.00</Сумма>
</Сотрудник>
<Сотрудник Нпп="2">
<Фамилия>Петров</Фамилия>
<Имя>Николай</Имя>
<Отчество>Николаевич</Отчество>
<ОтделениеБанка>9999</ОтделениеБанка>
<ФилиалОтделенияБанка>0</ФилиалОтделенияБанка>
<ЛицевойСчет>40817810755032551234</ЛицевойСчет>
<Сумма>5000.00</Сумма>
</Сотрудник>
</ЗачислениеЗарплаты>
<ВидЗачисления>2</ВидЗачисления>
<ПлатежноеПоручение>3427</ПлатежноеПоручение>
<ДатаПлатежногоПоручения>2013-12-11</ДатаПлатежногоПоручения>
<КонтрольныеСуммы>
<КоличествоЗаписей>2</КоличествоЗаписей>
<СуммаИтого>9000.00</СуммаИтого>
</КонтрольныеСуммы>
</СчетаПК>
<!--СчетаПК-->
Показать
Прикрепленные файлы:
+
Внимание! Тема сдана в архив

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