gifts2017

Последовательность списания или "Продлеваем жизнь 7-ке"

Опубликовал Сергей Коробейников (Sergey1CSpb) в раздел Управление - Практика учета

Предлагаю решение проблемы, связанной с расчетом себестоимости товаров при большом объеме приходных/расходных документов в пределах одной даты. Текст модуля с комментариями для Бухгалтерии 7.7  прилагается

Ни для кого не секрет, что порядок следования документов учета товаров влияет на расчет себестоимости. Понятно когда документы различаются датами. А когда имеем дело с набором документов разного вида в пределах одной даты?

Опишу суть проблемы. Расчет себестоимости по средней (имеется ввиду по средней на момент списания, как в Бухгалтерии 7.7). Имеем два поступления (Поступление 1 и Поступление 2) и одно списание (Списание 1) в пределах одной даты. Рассмотрим следующий порядок поступления условного товара.

Поступление 1: 3 ед. на сумму 300 рублей

Поступление 2: 2 ед. на сумму 300 рублей

Списание 1: 2 ед.

Стоимость списания 2-х единиц на момент документа Списание 1 = 2*600/5 = 2*125=250.

 

При альтернативной последовательности того же набора документов:

Поступление 1: 3 ед. на сумму 300 рублей

Списание 1: 2 ед.

Поступление 2: 2 ед. на сумму 300 рублей

Очевидно, что на этот раз стоимость списания 2-х единиц на момент документа Списание 1 = 2*300/3 = 2*100=200.

 

Таким образом, большой объем документов в пределах одной даты может оказать существенное влияние на расчет себестоимости и прибыли в дальнейшем.

И если даже в «Торговле и склад» делаются попытки борьбы с такой ситуацией (точка актуальности; запрос о времени документа при записи), то в Бухгалтерии по данному вопросу ничего не реализовано (документы записываются текущем временем независимо от даты).

Изменения порядка регистрации документов в Бухгалтерии 7.7 можно произвести путем изменения времени документа в одном из журналов документов. Для этого следует сделать один из документов непроведенным, изменить время документа и провести еще раз. Не самое быстрое и приятное занятие. Причем, если документы продолжают вноситься данной датой, то вполне вероятно , что процесс придется повторить.

Какие выходы можно найти? Да, конечно же –  перейти на версию 8.х.

Предложение в целом неплохое. Однако может существовать ряд причин препятствующих такому решению. Хотя бы время и деньги, требуемые для перевода нетиповой бухгалтерии на новую платформу.

 

Я же хочу предложить малозатратный способ, который был успешно внедрен в нашей организации. Но для начала – история проблемы.

Итак, в организации год от года возрастает документооборот. Самая ходовая номенклатура включает лишь несколько наименований. Документы оформляются как в ручном режиме, так и экспортируются из внешней базы (не 1С). Особенность учета в том, что львиная доля документов приходится на последнее число месяца. В итоге весь этот объем документов условно 31-го числа приходится «разгребать» очень долго. А в виду крупных отгрузок (в стоимостном выражении), даже один документ, «стоящий не на месте», может существенно повлиять на расчет прибыли. Основные товарные операции организации: поступление, реализация и «условное производство». Под «условным производством» понимается получение одной номенклатуры из других путем объединения. Причем не исключается ситуация, когда в производство может списываться и та номенклатура, которая производится.

Раздумывая на извечным русским вопросом, я в порядке эксперимента предложил такой вариант. Проведение автоматической группировки документов по виду в следующем порядке: Поступления, Производство, Списания.

Реализовано было следующим образом. Поступления, невзирая на текущее время, автоматически записываются друг за другом с интервалом 10 секунд, начиная с 10 утра. Производства, начиная с 14:00. Списания с 17:00.

После некоторого «отладочного периода» решение вполне удачно заработало. Все остались довольны.

 

Теперь, как это все реализовать с использованием встроенного языка.

Потребуется внесение изменений в тексты модулей форм – предопределенная процедура ПриЗаписи(). При желании, часть общих действий можно вынести в Глобальный модуль.

Шаблон текста с комментариями приведен во вложении.

 

!!! Не забывайте, что создание документов иными средствами, нежели интерактивный ввод, например из других модулей с использованием Док.Записать(), не вызывает предопределенную процедуру ПриЗаписи() модуля формы документа. Поэтому, для каждого случая такого создания требуется программная установка времени перед записью!!!

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Шаблон текста модуля
.txt 2,72Kb
31.05.13
7
.txt 2,72Kb 7 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Z Lu (validat) 31.05.13 14:29
Надо попробовать, хотя никогда не сталкивался с такой проблемой, большой объем приходных/расходных документов в пределах одной даты. Семерка, по-прежнему, работает на многих торговых предприятиях. Любит народ её, поэтому любые расширения возможностей и функциональности полезны.
Sergey1CSpb; +1 Ответить
2. zhuravlik (unichkin) 01.06.13 16:40
имхо, чем копаться в модулях документов, проще заюзать 1С++ и через перехватчик определить необходимые события. Таким образом настраивал запись документов на 10 сек. раньше документа "Закрытие месяца".
3. Сергей Коробейников (Sergey1CSpb) 01.06.13 17:48
Вполне возможно!
Только в моем случае "копание в модулях документов" заключалось условно в 3-х копипастах.
Вообще, не очень люблю использовать внешние компоненты, когда можно обойтись без них.
4. Светлана Иванова (Cvetic) 05.06.13 09:43
Можно использовать последовательность документов.
5. Сергей Коробейников (Sergey1CSpb) 05.06.13 10:18
(4) Cvetic,
На бух компоненте последовательность практически не используется. Я не видел, во всяком случае, чтобы кто-то применял. Ни один бух отчет, по крайней мере, границу последовательности точно не проверяет.
А уж вопрос, как заставить следить за ГП десяток бухгалтеров я вообще упущу.
На практике же, "последовательность" не "ответит" однозначно на вопрос "Как правильно они должны стоять?". Я же предложил такой ответ: правильно так - утром - приходы, днем - производство, вечером - реализация.
Конечно мысли об использовании ГП посещали, но в данном случае не прижились.
6. Romarius (Romarius) 05.06.13 10:52
Как правило в каждом модуле формы документа в процедуре ПриЗаписи() есть вызов процедуры глПроверкаДатыДок или подобная. В ней можно реализовать установку времени документа средствами: УстановитьВремя(Час,Минута,Секунда)
Для каких документов и в какой оси времени стоят, перед этим определяете.
Я так понимаю, что здесь описана ситуация списания про среднему. При ФИФО такая проблема выдавала бы одинаковый результут. Главное, чтобы остаток на момент списания был.
Раньше делал обработку, которая в конце месяца устанавливала время документов в определенной последованности, а потом перепроводил все документы. Также, можно написать обработку, которая определяет для каждой номенклатуры конечный остаток каждого документа, не зашол он в минус. И если на начало и конец дня был положительный остаток, то определяет в каких документах нужно изменить время. Делается это пока не будет определено, что при изменении времени результат не меняется или до N-го количества, чтобы небыло зацикливания. Это актуально, если задним числом вносят/изменяют приходы/расходы.
7. Сергей Коробейников (Sergey1CSpb) 05.06.13 11:14
(6) Romarius,
1. Наверное Вы имеете ввиду глМожноЗаписатьДокумент() или глКонтрольДатыДокумента()
Так у меня же написано: "При желании, часть общих действий можно вынести в Глобальный модуль.". Так что не спорю.
2. Да, описана ситуация "по среднему" (Бух 7.7). Но для ЛИФО и ФИФО имеем абсолютно такую же проблему!
3. Да, тоже делал что-то подобное. Но расставлять сразу гораздо проще, чем перетаскивать потом, согласитесь.
А в качестве отчета для проверки последовательности, я в частности пользовался
http://infostart.ru/public/186097/
8. Romarius (Romarius) 05.06.13 11:52
На одной торговой фирме также устанавливал время при записи документа. Но там было много перемещений, и с этими документами было сложно угадать, на какое время поставить. И в конце месяца при перепроведении выскакивали минусы.
В итоге перед закрытием периода делаю следующее:
1. Проверяю, не появились отрицательные остатки на промежутке любого документа. Делает это обработка, которую запускают сами бухгалтера. Она сама меняет время документа, где "считает нужным" (не всем подряд, а только чтобы небыло минуса в остатке). А что не получилось, показывает. Тогда бухгалтера принимают сами решения, в каком документе поменять дату (расход перед приходом).
Когда получается пустая таблица - тогда можно приступать к второму этапу.
2. Перепроверяю еще раз, что не будет отрицательных остатков, и перепровожу документы.
3. Блокирую период, чтобы не изменяли ничего задним числом.

Перепроведение запускаю вечерком или удаленно.
На обработку с тестированием ушло где-то полдня, но теперь уверен, что при проведении все спишется без минусовых остатков.
А то, что при разных ситуациях спишется разная себестоимость - это не существенно. Сегодня спишется одно, завтра остальное.
9. Сергей Коробейников (Sergey1CSpb) 05.06.13 13:22
Ваш порядок действий понятен. Возражений нет. Хотя, отрицательных остатков может и не возникнуть, а себестоимость ошибочная.
"при разных ситуациях спишется разная себестоимость - это не существенно"
Это не всегда так. Не буду приводить конкертных цифр разницы в нашей организации, но она бывает внушительна.
"Сегодня спишется одно, завтра остальное" - тоже верно. Но естественная корректировка неправильной себестоимости на 31.12.12 новым списанием, например, 10.01.13 несколько влияет на финансовые результаты года.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа