R50 658bf63fa43ed0ffc555be702782ef96
программирование C, C++, VBA

Обработка накладных. Excel + VBA. 2019 г.

Добавлено 18 дек 2023 в 20:07
Издательство выпускает несколько журналов, которые распространяются по подписке. Подписку «собирает» АО Почта России (ПР). Каждый месяц в адрес региональных отделений ПР (УФПС, их 82) рассылаются накладные, в которых отражено сколько и каких журналов этого издательства отгружено в соответствии с ежемесячным заказом. ПР требует, чтобы для каждого журнала в накладной был указан подписной индекс. Средствами 1С-бухгалтерии, в которой и генерируются накладные, это сделать затруднительно по следующим причинам:

  • Каждый журнал имеет 2 подписных индекса: для физ.лиц и для юр.лиц, цена у них разная;
  • Кроме регулярной подписки каждое полугодие проводится 1 или 2 декады подписки по сниженным ценам;
  • Журналы приходят из типографии и приходуются по накладным БЕЗ каких-либо индексов.
Ежемесячные заказы (МЗ) от ПР поступают в формате Excel, информация в них сгруппирована в порядке «журнал — индекс — цена - количество». 1С-бухгалтерия также позволяет выгружать накладные в формате Excel. Поэтому на VBA была написана программа, которая совершает следующие операции:

1. Последовательно считываются файлы накладных;

2. Для каждой накладной (т. е. Для каждого УФПС) из файла МЗ находятся соответствие «журнал — количество — цена — индекс»;

3. Этот индекс вставляется в соответствующую строку накладной.

В марте 2022 г. в программу была добавлена опция печати накладных на обоих сторонах листа (принтеры в издательстве односторонние) — для экономии бумаги, т. к. цена за пачку офисной бумаги одномоментно выросла в 6 (!) раз.

547339ba17