ЗиК 7.7 — Банк Санкт-Петербург (зарплатные карты)



Обработка проставляющая табельные номера в файле банка для начисления зарплаты на карты.
Соответствие устанавливается по:
— паспорту
-ФИО + дата рождения
— зарплатный счет

Обработка проставляющая табельные номера в файле банка для начисления зарплаты на карты.
Соответствие устанавливается по:
— паспорту
-ФИО + дата рождения
— зарплатный счет

Диагностика расхождений данных между ЗиК и данными банка вследствии смен ФИО, паспортов.

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

У нас более 1500 человек и большая текучка + сезонность.

Отсюда и такие требования к обработке.

Есть и другие обработки:

— на выдачу карт

— и сама выгрузка выплат на карты по ведомостям с контролем сумм

 

8 Comments

  1. melenaspb

    А можно посмотреть Вашу обработку на выдачу карт?

    Точнее меня интересует один момент — Как записать дату рождения сотрудника в DBF-файл в формате «дд.мм.гггг»? У меня банк «Санкт-Петербург» требует дату рождения именно в таком виде, но я что-то туплю , получается же 10 знаков вместе с точками,а в DBF длина поля типа дата 8 знаков.

    Reply
  2. serg_info

    (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,стПусто);

    КонецЕсли;

    Если ПустаяСтрока(СЗ.ПолучитьЗ

    Reply
  3. melenaspb

    (2) Спасибо, попробую. У меня , действительно, похоже дата рождения как строка записывается.

    Reply
  4. melenaspb

    Что-то у меня все равно эта дата не получается.

    Пишу вот так :

    ДляДБФ=СоздатьОбъект(«ТаблицаЗначений»);

    ДляДБФ.НоваяКолонка(«BIRTHDAY»,»Дата»);

    ….

    Если ПустоеЗначение(ТСотрудников.Сотрудник.ДатаРождения) = 0 тогда

    ДатаРождения =ТСотрудников.Сотрудник.ДатаРождения;

    Иначе

    глДобавитьСообщение(ОбработчикСообщений, «У сотрудника » + ФИО + » не указана дата рождения», ТСотрудников.Сотрудник, , «»);

    НеФормироватьФайл = 1;

    ЕстьПустыеПоля=1;

    КонецЕсли;

    ….

    // запись в таблицу значений

    ДляДБФ.НоваяСтрока();

    ДляДБФ.BIRTHDAY= ДатаРождения;

    ….

    // запись в сам dbf-файл

    ДБФ.Добавить();

    ДБФ.BIRTHDAY= ДляДБФ.BIRTHDAY;

    В итоге когда смотрю готовый dbf-файл дата выглядит вот так «19710621».

    А в присланном из банка файле вот так «21.06.1971»

    Я еще могу сделать дату вот такой «21.06.71», но так как в банке у меня не получается.

    Reply
  5. serg_info

    Ну вот почти полный набор. Добавил обработку на формирование файла для заказа карт на вновь принятых людей.

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

    Кому съекономит день работы — плюсуйте, не стесняйтесь 🙂

    Reply
  6. def03

    Где можно посмотреть обработку на выдачу карт

    Reply
  7. serg_info

    (6) Второй файл, формирует список вновь принятых людей в банк для выдачи карт.

    Возможно «ручное» удаление/добавление людей. Чтобы обработка носила более управляемый характер…

    Reply
  8. def03

    ребят а такой обработки нет под сбербанк

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *