Соответствие устанавливается по:
— паспорту
-ФИО + дата рождения
— зарплатный счет
Обработка проставляющая табельные номера в файле банка для начисления зарплаты на карты.
Соответствие устанавливается по:
— паспорту
-ФИО + дата рождения
— зарплатный счет
Диагностика расхождений данных между ЗиК и данными банка вследствии смен ФИО, паспортов.
Диагностика на дубли, когда один и тот же человек устраивается на работу дважды в разное время и получает 2-ве зарплатные карты.
У нас более 1500 человек и большая текучка + сезонность.
Отсюда и такие требования к обработке.
Есть и другие обработки:
— на выдачу карт
— и сама выгрузка выплат на карты по ведомостям с контролем сумм
А можно посмотреть Вашу обработку на выдачу карт?
Точнее меня интересует один момент — Как записать дату рождения сотрудника в DBF-файл в формате «дд.мм.гггг»? У меня банк «Санкт-Петербург» требует дату рождения именно в таком виде, но я что-то туплю , получается же 10 знаков вместе с точками,а в DBF длина поля типа дата 8 знаков.
(1) Не надо передавать в DBF как текст, передавайте как дату прямо из 1С…
тзЭкран — таблица значений где живет список сотрудников
тзЭкран.ДатаРождения — столбец типа дата
тзЭкран.ДатаРождения=новСотрудник.ДатаРождения;
Тут кусок кода, он достаточно длинный т.к. там дальше много проверок + вывод диагностики + добавление исключение рукми перед выгрузкой и т.д.
//_____________________________
Процедура ВыгрузитьВДБФ()
ДБФ=СоздатьОбъект(«XBASE»);
ДБФ.ОткрытьФайл(СокрЛП(ВыбФайл));
ДБФ.ОчиститьФайл();
Для сч=1 По тзЭкран.КоличествоСтрок() Цикл
тзЭкран.ПолучитьСтрокуПоНомеру(сч);
ДБФ.Добавить();
ДБФ.FNAME=ВзятьФИО(тзЭкран.Сотрудник.Наименование,1);
ДБФ.LNAME=ВзятьФИО(тзЭкран.Сотрудник.Наименование,2);
ДБФ.SNAME=ВзятьФИО(тзЭкран.Сотрудник.Наименование,3);
Если (тзЭкран.Сотрудник.Пол.Выбран()=1) и (Найти(«МЖ»,Лев(тзЭкран.Сотрудник.Пол.Наименование,1))>0) Тогда
ДБФ.SEX=Лев(тзЭкран.Сотрудник.Пол.Наименование,1);
Иначе
Сообщить(«Не определен пол у «+тзЭкран.Сотрудник);
КонецЕсли;
стПусто=»»;
ДБФ.BIRTHDAY=тзЭкран.ДатаРождения;
СЗ=глРазложить(тзЭкран.Сотрудник.АдресПрописка);
ДБФ.AREA=СЗ.ПолучитьЗначение(3,стПусто);
ДБФ.PUNKT=СЗ.ПолучитьЗначение(6,стПусто);
ДБФ.CITY=СЗ.ПолучитьЗначение(5,стПусто);
Если СокрЛП(СЗ.ПолучитьЗначение(3,стПусто))=»Санкт-Петербург г» Тогда
ДБФ.AREA=»»;
ДБФ.CITY=»Санкт-Петербург г»;
КонецЕсли;
// добавлено
Если ПустаяСтрока(ДБФ.CITY)=1 Тогда
ДБФ.CITY=»-«;
КонецЕсли;
Если ПустаяСтрока(СЗ.ПолучитьЗначение(7,стПусто))=1 Тогда
ДБФ.STREET=»-«;
Иначе
ДБФ.STREET=СЗ.ПолучитьЗначение(7,стПусто);
КонецЕсли;
Если ПустаяСтрока(СЗ.ПолучитьЗначение(8,стПусто))=1 Тогда
ДБФ.HOUSE=»-«;
Иначе
ДБФ.HOUSE=СЗ.ПолучитьЗначение(8,стПусто);
КонецЕсли;
Если ПустаяСтрока(СЗ.ПолучитьЗ
(2) Спасибо, попробую. У меня , действительно, похоже дата рождения как строка записывается.
Что-то у меня все равно эта дата не получается.
Пишу вот так :
ДляДБФ=СоздатьОбъект(«ТаблицаЗначений»);
ДляДБФ.НоваяКолонка(«BIRTHDAY»,»Дата»);
….
Если ПустоеЗначение(ТСотрудников.Сотрудник.ДатаРождения) = 0 тогда
ДатаРождения =ТСотрудников.Сотрудник.ДатаРождения;
Иначе
глДобавитьСообщение(ОбработчикСообщений, «У сотрудника » + ФИО + » не указана дата рождения», ТСотрудников.Сотрудник, , «»);
НеФормироватьФайл = 1;
ЕстьПустыеПоля=1;
КонецЕсли;
….
// запись в таблицу значений
ДляДБФ.НоваяСтрока();
ДляДБФ.BIRTHDAY= ДатаРождения;
….
// запись в сам dbf-файл
ДБФ.Добавить();
ДБФ.BIRTHDAY= ДляДБФ.BIRTHDAY;
В итоге когда смотрю готовый dbf-файл дата выглядит вот так «19710621».
А в присланном из банка файле вот так «21.06.1971»
Я еще могу сделать дату вот такой «21.06.71», но так как в банке у меня не получается.
Ну вот почти полный набор. Добавил обработку на формирование файла для заказа карт на вновь принятых людей.
Вообще по хорошему этот наборчик банк мог бы и сам разработать и своим клиентам раздавать, решения то типовые.
Кому съекономит день работы — плюсуйте, не стесняйтесь 🙂
Где можно посмотреть обработку на выдачу карт
(6) Второй файл, формирует список вновь принятых людей в банк для выдачи карт.
Возможно «ручное» удаление/добавление людей. Чтобы обработка носила более управляемый характер…
ребят а такой обработки нет под сбербанк