Отключить проверку отрицательных остатков организации при закрытии месяца. УТ 11.4
У клиента при закрытии месяца постоянно было несколько позиций с отрицательными остатками и это мешало ему, потому что из-за каких-то нескольких позиций не рассчитывалась вся себестоимость.
Меня вообще удивляет эта незамутненность методологов 1С, которые живут в идеальном мире розовых пони, где не бывает отрицательных остатков.
В общем, решил отключить проверку отрицательных остатков.
Можно было корректировкой регистров выравнивать остатки в ноль в конце месяца, а в начале месяца этой же корректировкой возвращать их назад, но это лишнее усложнение схемы.
Первоначально сделал в конфигураторе поиск по строке «отрицательные остатки».
Она привела меня в этот модуль:
Расширил код модуля ЗакрытиеМесяцаСервер:
&Вместо("ОписаниеПроверок_ИсправлениеОтрицательныхОстатковТоваровОрганизаций") Процедура дор_ОписаниеПроверок_ИсправлениеОтрицательныхОстатковТоваровОрганизаций(ТаблицаПроверок) Возврат; //Временно не проверяем отрицательные остатки ПродолжитьВызов(ТаблицаПроверок); КонецПроцедуры
Этот код выдает сообщение при быстрой проверке месяца, когда я его убрал, перестало выскакивать вот такое сообщение:
Однако при расчете себестоимости ошибка все равно проявлялась:
Методом отладки я нашел, что это происходит вот в этих местах (сразу я не нашел эти сообщения, т.к. искал «отрицательные остатки», а тут текстовка другая):
Эти сообщения убрал расширением модуля ЗакрытиеМесяцаСервер:
&Вместо("ИнициализироватьПараметрыРегистрацииПроблемПроверки") Функция дор_ИнициализироватьПараметрыРегистрацииПроблемПроверки(ИмяВременнойТаблицы, ШаблонТекстаОшибки, СписокПолей, ИмяПоляОбъекта, ИмяРегистраДляРасшифровки) Если ИмяВременнойТаблицы = "ВТОстаткиБезКоличества" ИЛИ ИмяВременнойТаблицы = "ВТОтрицательныеОстатки" ИЛИ ИмяВременнойТаблицы = "ВТОстаткиСРазнымЗнаком" Тогда Возврат Новый Массив(); //Просто пустой массив возвращаем КонецЕсли; Результат = ПродолжитьВызов(ИмяВременнойТаблицы, ШаблонТекстаОшибки, СписокПолей, ИмяПоляОбъекта, ИмяРегистраДляРасшифровки); Возврат Результат; КонецФункции
После этого получил красивую картинку закрытия месяца:
Как выглядит себестоимость по позициям с отрицательными остатками, не смотрел, надеюсь, 1С предусмотрела более-менее корректные алгоритмы их обработки.
Среда: 11.4.13.46 Объем:
Отрицательных остатков товара не может быть по определению в конце периода при закрытии.
Это как? Отрицание природы вещей? Банальный пересорт легко может повлечь такую ситуацию.
Или вы сторонник инвентаризаций под конец месяца? А если работают задним числом?
Пересорт лечится инвентаризацией. Списанием недостачи и оприходованием излишков. Остутствие первички бухгалтерской — ррдерной схемой склада. В общем — прекращенмем бардака, а не снятием ограничений
Вы батенька, перфекционист, практики не нюхавший. Но я скажу более — корректная работа с отрицательными остатками это и есть автоматизация, автоматизация обработки отрицательных остатков. Раньше 1С не испытывала проблем с расчетом себестоимости по отрицательным остаткам.
Тем более что отрицательные остатки обычно всегда в пределах погрешности.
Отрицательные остатки — это не природа, нельзя взять с полки и продать чего нет, это бардак в учете
Я уже эти доводы 100500 раз слышал. При больших объемах и ассортименте отрицательные остатки — это как раз в порядке вещей. Я уже писал, что часто к этому приводит банальный пересорт.
Иногда исправлять отрицательные остатки дороже, чем их списать.
Но 1с идет по пути перфекционизма в своих типовых. Я бы назвал это кривой дорожкой.
Если стоит контроль остатков организаций и его не снимают, то такого быть просто не может
а если не стоит? 😉
В любом случае подобные заплатки это путь в никуда
Ровно наоборот. Это и есть настоящая автоматизация. В отличие от 1С, методисты которой живут в мире «розовых пони» и страшно далеки от реальной хозяйственной деятельности.
Просто огромное спасибо за наводку. Только сегодня поставили задачу. Клиент уже полтора года ведет учет, но про закрытие даже и не думали. При чем почти год данных, они затянули из 10.3 с безумно красивыми минусами. Ваше решение — это спасение. Проделал тоже самое через расширение. Проблема ушла. Еще раз спасибо.
Приятно, что мой блог не только читают, но и применяют на практике. 😉
Люблю улучшать 1С.
Тема помогла. Спасибо.
Но пришлось ещё один модуль расширять. Расхождения остатков по разным знакам не хотели уходить. Хоть эта таблица и есть в условии «ВТОстаткиСРазнымЗнаком» В запросе поменял условие с на >.
Чтобы не мешало.
Мы рождены, чтобы сломать искусственные проблемы, рожденные разработчиками типовых! 😉