Часто возникает ситуация, когда на складе учет ведется в одной программе, например Торговля и Склад (ТИС), а в бухгалтерии учет ведется в другой программе, например 1С Бухгалтерия 7.7. Иногда склад и бухгалтерия находятся в разных местах, удаленных друг от друга. При этом возникает проблема переноса документов из одной программы в другую. В программе ТИС предусмотрена стандартная обработка выгрузки документов в Бухгалтерию, но она не всегда удовлетворяет конкретным требованиям бухгалтеров. Существует много способов решения этой проблемы, хочу поделиться своими наработками в решении этой проблемы.
Статья предназначена для начинающего программиста.
Используемая конфигурация:
Торговля и Склад 9.2 (ТИС), 1С Бухгалтерия 7.7. (Бух). В программе ТИС приход выполняется документом Поступление ТМЦ, расход документом Перемещение, магазины в программе ТИС фигурируют как розничный склад, в Бух – места хранения.
Проблемы, возникшие при стандартном переносе из ТИС в Бух:
1. Несоответствие кодов в справочниках Контрагенты и Места хранения (Склады) в базах ТИС и Бух.
2. Не всегда счета, формируемые стандартной выгрузкой устраивают бухгалтеров. В некоторых случаях при оформлении документа Перемещение, в зависимости от магазина бухгалтера требуют разных проводок.
3. Стандартная выгрузка переносит всю НОМЕНКЛАТУРУ, т.е. по каждому документу формируется множество проводок – столько, сколько товаров в приходной или расходной накладной, а в бухгалтерии достаточно ОДНОЙ проводки на приходную накладную, и ДВУХ проводок (списание и наценка) на расходную накладную. Кроме этого были и другие, более мелкие проблемы, которые пришлось решать.
Решение проблем:
Проблема 1 известна, известно и ее решение – выгрузка справочников из бухгалтерии и загрузка их в ТИС, т.е. приведение в соответствие справочников, но она не решается, если программы УЖЕ РАБОТАЛИ несколько лет (месяцев) ДО ТОГО как начали делать переброску, кроме того, даже если справочники были приведены в соответствие, в процессе эксплуатации всегда появляется несогласованность действий операторов, и на складе заводятся контрагенты (склады) не под тем кодом, под которым они заводятся в бухгалтерии.
Проблема 2 не всегда может быть решена стандартной настройкой в ТИС с указанием номеров счетов по документу (например Перемещение).
Все эти 3 проблемы можно было-бы частично решить переписав код стандартной выгрузки, но это требует большой квалификации программиста, да и постоянно переписывать этот код весьма проблемно.
Я пошел более простым путем, хотя и у него есть недостатки.
На компьютере с установленной бухгалтерией (или на любом другом, если программа сетевая) я создал новую базу, скопировав РАБОЧУЮ базу, очистил ее от документов, оставив все справочники. Получилась, так называемая ТРЕНИРОВОЧНАЯ база, и СТАНДАРТНУЮ выгрузку из ТИС я загружаю в эту тренировочную базу. При этом в тренировочную базу попадает много лишнего, например, номенклатура, «лишние» контрагенты, но зато это все не попадет в нашу рабочую базу. Затем я запускаю обработку, которую я написал сам (ее написать несложно, смотри приложение Обработка1.ert), которая обрабатывает перенесенные операции и делает все, что требуется. Так, например, моя обработка собирает все проводки документа по разной номенклатуре и делает одну проводку, собирая всю сумму на один элемент справочника номенклатура: «ТОВАР» или «ТАРА», исправляет нужные счета в зависимости от склада (у нас например идет разделение магазинов на ТОРГОВЛЯ и ОБЩЕПИТ – документ один и тот же - Пермещение, а счета разные), и исправляет, если необходимо, несоответствие кодов в справочниках ТИС и БУХ (для этого приходится эту обработку, время от времени подправлять, зато это можно делать на любой машине, не прерывая работу операторов, как и все операции с тренировочной базой). Затем я ПЕРЕБРАСЫВАЮ исправленные операции из ТРЕНИРОВОЧНОЙ базы в РАБОЧУЮ (смотри приложение ПереносОпераций.ert в архиве per.rar с краткой инструкцией). Если в тренировочной базе номера операций отстают от нумерации в рабочей базе (Ошибка: номер не уникальный) приходится предварительно запускать в ТРЕНИРОВОЧНОЙ базе еще одну обработку ОбрНомОп.ert которая увеличивает номера операций за определенный период (смотри приложение: ИнструкцПеренос – краткая инструкция действий). Основную работу занял код Обработки1 – в коде есть подробные комментарии.