|
Помогите пож. [БП 1.6, ЗУП 2.5] Выгрузка реестра начислений з/п в Сбербанк | ☑ | ||
---|---|---|---|---|
0
holoddi
17.09.11
✎
09:21
|
Всем привет. Кто может, помогите пожалуйста с обработкой. [БП 1.6, ЗУП 2.5] Выгрузка реестра начислений з/п в Сбербанк (Выложите, у кого есть, или выкачайте с инфостата, кто может, и выложите) Самому с инфостата выкачать не дает, рейтинг мал, а писать в выходные лень.
Заранее спасибо |
|||
1
holoddi
17.09.11
✎
09:29
|
ЗЫ. Надо выгружать из ЗУП 2.5. На инфостате она называется SberbankVygruzkaReestra3.epf
|
|||
2
savimar
17.09.11
✎
12:36
|
В сье в формате dbf или xml? Xml - штатная обработка, в dbf - нужно писать.
|
|||
3
holoddi
17.09.11
✎
13:13
|
2 в дбф. Она есть написанная. На инфостате. Я просто выкачать не могу оттуда из-за низкого рейтинга
|
|||
4
holoddi
17.09.11
✎
13:13
|
||||
5
Kookish
17.09.11
✎
13:21
|
Я буквально на этой неделе писал что-то подобное для 7.7. В формате DBF4. Делов-то: создать ТЗ, потом на ее основе сделать файл. Вот примерно мой текст:
Сообщить("Тогда выгружаем..."); Стр = ПутьВыгрузки; Пока Найти(Стр,"\")<>0 Цикл Стр = Сред(Стр,Найти(Стр,"\")+1); КонецЦикла; __К = Лев(ПутьВыгрузки,НайтиПосл(ПутьВыгрузки,"\")); __Ф = Прав(ПутьВыгрузки, СтрДлина(ПутьВыгрузки) - СтрДлина(__К)); Если ФС.ВыбратьФайл(1,__Ф,__К,"Выбрать файл для вывода","Файлы DBF (*.dbf)|*.dbf") = 1 Тогда ПутьВыгрузки = __К + __Ф; Иначе Возврат; КонецЕсли; // Собственно создание файла и запись Если ФС.СуществуетФайл(ПутьВыгрузки) = 1 Тогда ФС.УдалитьФайл(ПутьВыгрузки); КонецЕсли; DBConn = CreateObject("ADODB.Connection"); DBConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + __К + ";" + "Extended Properties=""DBASE IV;"";"); ИмяБазы = Лев(__Ф, СтрДлина(__Ф) - 4); //Создаем новый DBF и задаем его колонки DBConn.Execute("Create Table " + ИмяБазы + " (A char(30), B char(30), C char(30), D char(30), E char(30), F char(30), G char(30))"); DBConn.Execute("Insert into " + ИмяБазы + " Values('" + ОтделениеБанка + "', '', '', '', '', '', '')"); DBConn.Execute("Insert into " + ИмяБазы + " Values('К платежному поручению №', '" + НомерПП + "', 'от', '" + ДатаПП + "', '', '', '')"); DBConn.Execute("Insert into " + ИмяБазы + " Values('Зачисление', '" + КодЗачисления + "', '', '', '', '', '')"); DBConn.Execute("Insert into " + ИмяБазы + " Values('Наименование, ОГРН, № банк сч.', '" + СтрокаНаим + "', '" + НомерСчета + "', '', '', '', '')"); DBConn.Execute("Insert into " + ИмяБазы + " Values('По договору', '" + НомерДоговора + "', 'от', '" + ДатаДоговора + "', '', '', '')"); DBConn.Execute("Insert into " + ИмяБазы + " Values('№ п/п', 'Номер счета', 'Фамилия', 'Имя', 'Отчество', 'Сумма', 'Примечание')"); ТабВБанк.ВыбратьСтроки(); НомСтр = 1; ИтогоСумма = 0; Пока ТабВБанк.ПолучитьСтроку() = 1 Цикл ТекСотр = ТабВБанк.Сотрудник; глФамилияИмяОтчество(ТекСотр.Наименование, СотрФамилия, СотрИмя, СотрОтчество); Если СпрСотр.НайтиЭлемент(ТекСотр) = 1 Тогда НомСчета = СпрСотр.НомерЗарплатногоСчета; Иначе НомСчета = ТекСотр.НомерЗарплатногоСчета; КонецЕсли; DBConn.Execute("Insert into " + ИмяБазы + " Values('" + Строка(НомСтр) + "', '" + НомСчета + "', '" + СотрФамилия + "', '" + СотрИмя + "', '" + СотрОтчество + "', '" + Формат(ТабВБанк.Сумма, "Ч.2") + "', '')"); ИтогоСумма = ИтогоСумма + ТабВБанк.Сумма; НомСтр = НомСтр + 1; КонецЦикла; DBConn.Execute("Insert into " + ИмяБазы + " Values('', 'ИТОГО:', '', '', '', '" + Формат(ИтогоСумма, "Ч.2") + "', '')"); DBConn.Close(); //Закрываем соединение |
|||
6
holoddi
17.09.11
✎
13:24
|
2 Kookish. Спасибо. Я сам писал на 77 подобное. Просто лень писать под 8, если есть уже написанное, что, в худшем случае, надо будет только чуть поправить.
|
|||
7
savimar
17.09.11
✎
14:08
|
Могу выложить код для dbf
|
|||
8
savimar
17.09.11
✎
14:16
|
Но у меня - документ и часть реквизитов - на форме, где выбирается расчетная ведомость в банк из ЗУП.
Меняете номер отделения ОСБ в формате F1234 и наименование организации, её ЛС и огрн, и наименование отделения ОСБ Номер ФИ - номер реестра (с формы) ДБФ = Новый XBase; ДБФ.Кодировка = КодировкаXBase.OEM; ДБФ.поля.Добавить("A", "S", 30); ДБФ.поля.Добавить("B", "S", 30); ДБФ.поля.Добавить("C", "S", 30); ДБФ.поля.Добавить("D", "S", 30); ДБФ.поля.Добавить("E", "S", 30); ДБФ.поля.Добавить("F", "S", 30); ДБФ.поля.Добавить("G", "S", 30); ИмяПути = ""; ИмяФайла = ""; Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение); Диалог.Каталог = ИмяПути; ИмяФайла = "F1234" + Строка(НомерФИ); Диалог.ПолноеИмяФайла = ИмяФайла; Диалог.Заголовок = "Укажите файл для сохранения"; Диалог.Фильтр = "(*.dbf)|*.dbf"; Диалог.Расширение = "dbf"; Если Диалог.Выбрать() Тогда ИмяПути = Диалог.Каталог; ИмяФайла = Диалог.ПолноеИмяФайла; Сообщить(ИмяФайла); Иначе Предупреждение("Не удалось создать файл!"); Возврат; КонецЕсли; ДБФ.СоздатьФайл(ИмяПути + "F1234" + Прав(Формат(Число(НомерФИ), "ЧЦ=4; ЧВН=; ЧГ="), 3)); ДБФ.АвтоСохранение = Истина; //1 ДБФ.Добавить(); ДБФ.A = "Отделение ОСБ 1234"; //2 ДБФ.Добавить(); ДБФ.A = "К платежному поручению №"; //ДБФ.B = Поручение; ДБФ.C = "от"; //ДБФ.D = Формат(Дата, "ДФ=dd.MM.yyyy"); //3 ДБФ.Добавить(); ДБФ.A = "Зачисление"; ДБФ.B = "01"; ДБФ.C = "01"; //4 ДБФ.Добавить(); ДБФ.A = "Наименование, ОГРН, № банк. счета"; ДБФ.B = "Наименование организации"" л/с 1234567 огрн"; ДБФ.C = Банк.ОсновнойБанковскийСчет.НомерСчета; //5 ДБФ.Добавить(); ДБФ.A = "По договору"; ДБФ.B = ДоговорНомер; ДБФ.C = "от"; ДБФ.D = Формат(ДоговорДата, "ДФ=dd.MM.yyyy"); //6 ДБФ.Добавить(); ДБФ.A = "№ п/п"; ДБФ.B = "Номер счета"; ДБФ.C = "Фамилия"; ДБФ.D = "Имя"; ДБФ.E = "Отчество"; ДБФ.F = "Сумма"; ДБФ.G = "Примечание"; ЗапросВед = Новый Запрос; ЗапросВед.УстановитьПараметр("Ссылка", Ссылка); ЗапросВед.Текст = "ВЫБРАТЬ | РеестрВБанкСписокВедомостей.Ведомость, | РеестрВБанкСписокВедомостей.Сумма |ИЗ | Документ.РеестрВБанк.СписокВедомостей КАК РеестрВБанкСписокВедомостей |ГДЕ | РеестрВБанкСписокВедомостей.Ссылка = &ССылка"; ВыборкаВед = ЗапросВед.Выполнить().Выбрать(); ВыборкаВед.Следующий(); Ведомость = ВыборкаВед.Ведомость; ЗапросДБФ = Новый Запрос; ЗапросДБФ.УстановитьПараметр("Ссылка", Ведомость); ЗапросДБФ.Текст = "ВЫБРАТЬ | ВедомостьВБанкЗарплата.Физлицо, | ВедомостьВБанкЗарплата.Сумма, | ВедомостьВБанкЗарплата.НомерЛицевогоСчета |ИЗ | Документ.ВедомостьВБанк.Зарплата КАК ВедомостьВБанкЗарплата |ГДЕ | ВедомостьВБанкЗарплата.Ссылка = &Ссылка"; ВыборкаДБФ = ЗапросДБФ.Выполнить().Выбрать(); //7 по хз-1 Н = 1; Пока ВыборкаДБФ.Следующий() Цикл ДБФ.Добавить(); ДБФ.A = Н; ДБФ.B = ВыборкаДБФ.НомерЛицевогоСчета; Массив = ОбщегоНазначения.ПолучитьМассивФИО(ВыборкаДБФ.Физлицо.Наименование); ДБФ.C = Массив[0]; ДБФ.D = Массив[1]; ДБФ.E = Массив[2]; ДБФ.F = Формат(Число(ВыборкаДБФ.Сумма), "ЧЦ=15; ЧДЦ=2; ЧРД=.; ЧРГ=; ЧГ=0"); Н = Н + 1; КонецЦикла; //хз ДБФ.Добавить(); ДБФ.B = "ИТОГО:"; ДБФ.F = Формат(Число(ВыборкаВед.Сумма), "ЧЦ=15; ЧДЦ=2; ЧРД=.; ЧРГ=; ЧГ=0"); ДБФ.ЗакрытьФайл(); |
|||
9
holoddi
17.09.11
✎
14:23
|
2 savimar Спасибо Вам огромное
|
|||
10
holoddi
18.09.11
✎
11:18
|
Кому надо, могу выложить готовую обработку
|
|||
11
Welap
19.09.11
✎
08:15
|
Выложите, если не жалко. А на ифостаре и правда жадюги сидят.
|
|||
12
dmpl
19.09.11
✎
08:52
|
(5) А зачем было использовать сторонние средства, если есть штатные? Специалиста за такое не дадут...
|
|||
13
Мимохожий Однако
19.09.11
✎
09:13
|
Заведи второй аккаунт и скачай.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |