Бухгалтера столкнулись с проблемой развёрнутого сальдо на счёте 68.02
Откуда ноги растут стандартными методами разобраться не удалось (бывают глюки, когда решает проблему пересчёт итогов, но тут он не помог, визуальный анализ достаточно продвинутыми консультантами проводок БУ также не дал результата).
Анамнез показал, что в предыдущих месяцах развернутого сальдо не было...
Начали формировать в консоли проверочные запросы к регистру бухгалтерии и многие были без толку, пока не вывели типы значений измерений.
И дьявол кроется в мелочах...
Оказалось значение пусто да не так как нужно
ВЫБРАТЬ РАЗЛИЧНЫЕ
ХозрасчетныйОбороты.Регистратор КАК Документ,
ХозрасчетныйОбороты.Счет КАК Счет,
ХозрасчетныйОбороты.Счет.Валютный КАК СчетВалютный,
ТИПЗНАЧЕНИЯ(ХозрасчетныйОбороты.Валюта) КАК Тип_Валюта,
ХозрасчетныйОбороты.Валюта КАК Валюта,
ХозрасчетныйОбороты.Счет.УчетПоПодразделениям КАК СчетУчетПоПодразделениям,
ТИПЗНАЧЕНИЯ(ХозрасчетныйОбороты.Подразделение) КАК Тип_Подразделение,
ХозрасчетныйОбороты.Подразделение КАК Подразделение,
ХозрасчетныйОбороты.Счет.УчетПоНаправлениямДеятельности КАК СчетУчетПоНаправлениямДеятельности,
ТИПЗНАЧЕНИЯ(ХозрасчетныйОбороты.НаправлениеДеятельности) КАК Тип_НаправлениеДеятельности,
ХозрасчетныйОбороты.НаправлениеДеятельности КАК НаправлениеДеятельности
ИЗ
РегистрБухгалтерии.Хозрасчетный.Обороты(
&Дата1,
&Дата2,
Регистратор,
,
,
,
,
) КАК ХозрасчетныйОбороты
ГДЕ
ХозрасчетныйОбороты.Регистратор = &Регистратор
Рис.1 Неправильный вариант заполнения
Рис.1 Правильный вариант заполнения
ПРАВИЛО:
В случае отключенного на счете признака ведения учета, соответствующее измерение должно быть не ПустаяСсылка справочника, а равняться NULL.
Например, на счете 68.02 отключены учеты: Валютный, Учет по подразделениям и Учет по направлениям деятельности.
и поэтому в проводках по 68.02 счету пустые значения Валюты, Подразделения и Направления деятельности должны равняться NULL (как на рис.2), а не пустым ссылкам справочников (рис.1).
Разбираясь откуда такая "котовасия" появилась, выяснили что для редактирования движений документов использовали обработку Универсальный редактор реквизитов.
который в режиме Загрузка.ОбменДанными = Истина записывает пустые ссылки на справочники в поля проводки, которые не используются по признакам учета в счете.
Для исправления в обработку Универсальный редактор реквизитов (популярная вещь, на инфостарте поиском можете найти) в модуль формы в процедуру ЗаписатьДвижения() внесены исправления
Процедура ЗаписатьДвижения()
мдОбъекта = ВыбСсылка.Метаданные();
ВыбОбъект = ВыбСсылка.ПолучитьОбъект();
Для каждого мдРегистра Из мдОбъекта.Движения Цикл
Если Метаданные.РегистрыБухгалтерии.Содержит(мдРегистра) Тогда
ИмяРеквизитаФормы = "lyayРБ" + мдРегистра.Имя;
ИначеЕсли Метаданные.РегистрыНакопления.Содержит(мдРегистра) Тогда
ИмяРеквизитаФормы = "lyayРН" + мдРегистра.Имя;
ИначеЕсли Метаданные.РегистрыРасчета.Содержит(мдРегистра) Тогда
ИмяРеквизитаФормы = "lyayРР" + мдРегистра.Имя;
ИначеЕсли Метаданные.РегистрыСведений.Содержит(мдРегистра) Тогда
ИмяРеквизитаФормы = "lyayРС" + мдРегистра.Имя;
КонецЕсли;
НаборЗаписей = ВыбОбъект.Движения[мдРегистра.Имя];
НаборЗаписей.Прочитать();
Если ПоказыватьТолькоРегистрыСДвижениями И НаборЗаписей.Количество() = 0 Тогда
Продолжить
КонецЕсли;
НаборЗаписей.ОбменДанными.Загрузка = РежимЗаписиЗагрузка;
НаборЗаписей.Очистить();
тзРеквизитФормы = РеквизитФормыВЗначение(ИмяРеквизитаФормы);
НаборЗаписей.Загрузить(тзРеквизитФормы);
//+ Исправление
Если мдРегистра.Имя = "Хозрасчетный" Тогда
Валюта_ПустаяСсылка = Справочники.Валюты.ПустаяСсылка();
Подразделение_ПустаяСсылка = Справочники.СтруктураПредприятия.ПустаяСсылка();
НаправлениеДеятельности_ПустаяСсылка = Справочники.НаправленияДеятельности.ПустаяСсылка();
Для Каждого Запись_НЗ Из НаборЗаписей Цикл
Если НЕ Запись_НЗ.СчетДт.Валютный
И Запись_НЗ.ВалютаДт = Валюта_ПустаяСсылка Тогда
Запись_НЗ.ВалютаДт = NULL;
КонецЕсли;
Если НЕ Запись_НЗ.СчетКт.Валютный
И Запись_НЗ.ВалютаКт = Валюта_ПустаяСсылка Тогда
Запись_НЗ.ВалютаКт = NULL;
КонецЕсли;
Если НЕ Запись_НЗ.СчетДт.УчетПоПодразделениям
И Запись_НЗ.ПодразделениеДт = Подразделение_ПустаяСсылка Тогда
Запись_НЗ.ПодразделениеДт = NULL;
КонецЕсли;
Если НЕ Запись_НЗ.СчетКт.УчетПоПодразделениям
И Запись_НЗ.ПодразделениеКт = Подразделение_ПустаяСсылка Тогда
Запись_НЗ.ПодразделениеКт = NULL;
КонецЕсли;
Если НЕ Запись_НЗ.СчетДт.УчетПоНаправлениямДеятельности
И Запись_НЗ.НаправлениеДеятельностиДт = НаправлениеДеятельности_ПустаяСсылка Тогда
Запись_НЗ.НаправлениеДеятельностиДт = NULL;
КонецЕсли;
Если НЕ Запись_НЗ.СчетКт.УчетПоНаправлениямДеятельности
И Запись_НЗ.НаправлениеДеятельностиКт = НаправлениеДеятельности_ПустаяСсылка Тогда
Запись_НЗ.НаправлениеДеятельностиКт = NULL;
КонецЕсли;
КонецЦикла;
КонецЕсли;
//- Исправление
НаборЗаписей.Записать();
КонецЦикла;
КонецПроцедуры
Некорректных изменений в базе оказалось множество и не только по 68.02 счету, поэтому написал обработку, которая выявила все некорректные проводки БУ и исправила их (саму обработку можно скачать ниже):
Как она работает:
- Задаем настройки (Выбираем период исправления, отмечаем какие ошибки искать)
- Жмём кнопку [ Заполнить документы с ошибками] (Выводится список регистраторов у которых есть проводки с неправильными пустыми значениями)
- Отмечаем флажками строки
- Жмём кнопку [ Исправить на NULL ] (Обработка исправляет пустые ссылки справочника на NULL в изменениях Валюта, Подразделение, Направление деятельности по которым не установлен признак учета в счете)
В итоге исправилось неправильно возникшее развернутое сальдо:
Рис.3 Ошибочная Оборотно-сальдовая ведомость (с ошибкой развернутого сальдо)
Рис.4 Исправленная Оборотно-сальдовая ведомость (развернутое сальдо "свернулось")
P.S. Тем не менее, Универсальный редактор реквизитов, замечательная вещь!
Апдейты обработки:
Версия для скачивания: Проверка и правка на NULL в измерениях Хозрасчетный, по которым не ведется учет (для ERP, КА) 2019-12-17 Perl Amutor
Спасибо моему коллеге Владу, PerlAmutor IC ( //infostart.ru/profile/527156/ ) за исправления:
Воспользовался обработкой, но пришлось её немного "допилить". Первая проблема с которой я столкнулся это то, что после её работы остались документы, где нет NULL. Стал разбираться в запросе и понял, что виртуальная функция Обороты() - схлопывает в 0 суммы для некоторых документов и в этом случае, вообще их не показывает, считая, что оборотов - не было. Второе, что мне показалось странным - документы могут перезаписываться по несколько раз. Этого не происходит т.к. на первом цикле исправляются все движения, но они повторно перечитываются и вхолостую гоняются по циклу. Третье это то, что исправляются в любом случае Валюта, Подразделение и Направление деятельности в независимости от того какие отборы пользователь установил флажками. Четвертая проблема в том, что идет сравнение значений записи на пустую ссылку справочников, хотя по факту там могут стоять и Неопределено и все что угодно. С удивлением обнаружил то, что метод Модифицированность() у набора значений не работает, либо я не понимаю как он работает, если я меняю значение записи, но флаг не взводится. В общем все это дело я поправил и даю тебе ссылку на исправленную версию обработки.
Расширение: Быстрые отборы через буфер [Alt+C] Копировать, [Alt+V] Вставить | Копирует в буфер значения из списков, из ячеек отчетов, таблиц, настроек списков, других отборов и вставляет в выбранную настройку отбора. Работает с Объект не найден. Работает как в одной так и между разными базами 1С. Использует комбинации клавиш [Alt+C] Копировать, [Alt+V] Вставить. |
Резервное копирование и восстановление 1С баз на PostgreSQL в Windows с помощью pgAdmin, bat-файлов и планировщика | В данной инструкции будет описано, как с помощью pgAdmin, bat-файлов и планировщика заданий Windows организовать резервное копирование, восстановление и хранение копий баз данных. |
Гарантированное проведение документов (подключаемое расширение) | Гарантированное проведение указанного в регистре сведений списка документов. Регистрируем документы к проведению с помощью произвольных отборов СКД в регистре сведений, далее запускаем фоновое проведение в нескольких потоках. Проведенные документы удаляются из регистра, по непроведенным регистрируются ошибки. |
Ускорим проведение в 1С:Управление холдингом | В 1С:Управление холдингом есть "нехороший" запрос, который съедает значительную часть времени проведения документов. Если его подправить, то проведение заметно ускорится. |
Динамическая кнопка VS Комбинация клавиш | Часто требуется ко всем формам или к списку форм привязать новые действия. Но как это сделать не меняя каждую форму и в идеале не меняя конфигурацию? Ниже будет описано, как запрограммировать новые действия через расширение (т.е. не меняя конфигурации) и сделать это универсально (не меняя каждую форму). |
Параметризация печатных форм под контрагентов (подключаемое расширение) | Расширение добавляет возможности параметризации печати для контрагентов. Подробнее описано здесь //infostart.ru/1c/articles/1510459/ |
Просмотр объектов очереди сообщений в 1С:Документооборот | В базах с бесшовной интеграцией с 1С:Документооборот есть Регистр сведений "Очередь сообщений в 1С:Документооборот". Для пользователя он мало информативен. Расширение позволяет просматривать сообщение в человеческом виде. И понимать проблему до объекта. |
Поддержка пользователей [Alt+S] (подключаемое расширение) | Расширение, подключаемое к базе 1С для решения задач поддержки пользователей. Позволяет быстро (по кнопке или комбинации клавиш Alt+S), не выходя из программы 1С из любой формы, создать обращение к консультантам и программистам со скринами, файлами, в привязке к проблемному объекту (документу, справочнику, отчету, обработке и т.п.). Вести переписку по обращениям, отслеживать их выполнение с трудозатратами и уведомлять участников через механизмы: Telegram, Обсуждения 1С и Электронную почту. Код открыт и расширение может развиваться и быть доработано под индивидуальные потребности. |
Интерактивная справка [Alt+I] (подключаемое расширение) | Дополнительная справка, подключаемая к базе 1С. Содержит дерево разделов и статьи. Позволяет создавать статьи с картинками, прикреплять к ним файлы и видео, а также связывать статьи с объектами 1С (документам, справочникам, отчетам). Вызывается на динамически создаваемую кнопку панели либо быстрой комбинацией клавиш Alt+I. |
Защита объектов от изменения обменом | Расширение позволяет пользователю заблокировать объект 1С (документ, справочник) от изменения последующими загрузками данных или обменами. |
Доп. панель Alt+Z | Панель, вызываемая для объекта комбинацией клавиш Alt+Z (для документа, справочника, плана вида характеристик, плана счетов и т.д.). Возможности: Редактор всех реквизитов, таблиц и движений, Анализ прав к объекту, Поиск ссылок на объект с фильтрами, Сторно движений документа, Выгрузка/загрузка текущего объекта между базами. Подключается как Расширение. |
Создание стартовой базы | Часто требуется создать «Новую базу» почти пустую, но совпадающую с «Исходной базой» по необходимым обязательным настройкам: константам, регистрам сведений, справочникам, видам субконто и планами счетов и т.п., при этом уникальные идентификаторы объектов должны совпадать. |
Групповое добавление и удаление ролей из списка профилей | Подключаемая обработка. Помогает при конструировании профилей доступа пользователей (настройке прав пользователей), экономит время на добавлении/удалении одной и той же роли сразу в нескольких профилях. |
Интерактивная справка по объектам 1С (автономное расширение) | База знаний, подключаемая к объектам основной базы. Ведётся интерактивно, формируется в виде статей прямо в 1С (текст, картинки, таблицы, ссылки). Есть возможность прикрепления файлов, привязки к объектам 1С, возможности рейтинга и комментирования пользователями. |
Значения по умолчанию для пользователей (Расширение) | При заполнении документов и справочников пользователи часто сталкиваются с необходимостью ввода одних и тех же реквизитов. Заполнение в документах некоторых из них, таких как: Организация, Склад и т.п. - выполняется реализованным в 1С механизмом подстановки значения из последних 3-5 введенных документов. Если же вы хотите заполнять все реквизиты шапки (и даты, и флажки, и другие поля, включая дополнительные реквизиты), то вам поможет данный механизм. |
Контекст любого объекта конструкцией #Если Фамилия Тогда | Делаем инициализацию переменной в "своей" инструкции препроцессора, для получения контекстной подсказки объекта через точку. В дальнейшем в компилированном коде сама инициализация игнорируется, т.к. "своя" инструкция препроцессора НИКОГДА не выполняется. |
Отключение Монитора ИТС и Проверки наличия обновления (расширение) | Некоторые интернет-сервисы базы 1С у пользователей вызывают замедления работы и клиенту не нужны. Их можно отключить через расширения. |
Памятка работ по проекту 1С | Схема работ по проекту внедрения 1С освежает в голове и визуализирует общую картину мероприятий. Будет полезно как для Заказчика так и для Исполнителя при подготовке проекта и проведении совещаний по ходу проекта. |
Использование Стека вызовов в качестве условия оператора Если [...] Тогда | Делюсь интересным приёмом, позволяющим использовать данные стека исполнения кода 1С в качестве условия, накладываемого на выполнение кода. |
Уведомление пользователей об изменениях в объектах (расширение) | Позволяет без доработок настроить уведомления пользователям об изменениях объектов и их реквизитов. Уведомления отправляются в виде задач по проверке объектов с ссылками на объекты. |
Права доступа к объектам с гибкими отборами (расширение) | Возможность без доработок конкретизировать пользователям права Просмотра и Изменения объектов базы 1С, установив ограничения с помощью отборов системы компоновки данных. |
Памятка работ по задаче 1С | Памятка выполняемых работ по решению длительных задач по 1С |
Применение программистом таблицы рисков для оценки технического задания | Я как программист часто получаю технические задания, по которым от меня хотят услышать оценку. Привожу описание метода оценки задания, заимствованный из проектной технологии, по которому я оцениваю тех. задания |
Добрый великан | Руководители проектов определяют наше настоящее, каким оно будет?! Ответ прост - таким, каким и сам РП. |
Настройка ограничений входа пользователей в базу (расширение) | Настраиваем для пользователей 1С разрешенное количество открытых сеансов к текущей базе данных 1С в привязке к компьютерам. (У пользователя не будет возможности превысить допустимое количество сеансов или зайти с чужого компьютера). |
Переход с партий и производства версии 2.1 на режимы 2.2 в 1С:ERP в середине года | В данной статье рассказано о практическом опыте ВЦ «Раздолье» в переводе работы клиентов в «1С:ERP Управление предприятием» на новые режимы: использование производства 2.2 и партионный учет версии 2.2 (далее режимы 2.2) после начала года, доработки изменения. |
БП 3.0, Закрытие месяца, Отключение проверок операций прошлых периодов | Расширение конфигурации, отключающее ошибки прошлых периодов, которые блокируют закрытие текущего месяца. Например, "Нарушена последовательность регламентных операций" и т.д. |
Проводим по БУ "на лету" | В базе ERP и КА есть форма тестировщика, которая автоматически получает из конфигурации полные тексты запросов формирования бухгалтерских проводок выбранного документа, даёт возможность модифицировать запрос и сразу проверить результат. |
Административная панель #расширение объекта | Панель команд текущего объекта (документа, справочника и т.д.) со следующим возможностями: Редактор реквизитов, таблиц и движений текущего объекта, Анализ прав доступа к текущему объекту, Поиск ссылок на объект с отборами, Сторно движений документа, Выгрузка/загрузка текущего объекта между базами. Реализована всплывающей панелью в форме объекта. Подключается как расширение конфигурации (*.cfe) либо отдельными обработками. |
Универсальный обмен данными XML (с гибкими отборами и сохранением вариантов настроек) |
Обработка предназначена для загрузки и выгрузки данных по правилам обмена в любых конфигурациях, реализованных на платформе 1С:Предприятие 8.3. Преимуществом перед типовой обработкой является добавленный функционал: #1. Установка произвольных фильтров на выгружаемые объекты при помощи механизма системы компоновки данных #2. Сохранение различных вариантов настроек (сохраняются правила обмена, фильтры выгрузки, параметры, настройки обработки) - что позволяет гибко настроить в базе-источнике фильтры для выгрузки объектов по различным правилам обмена для различных баз-приемников, сохранить выполненные настройки и в будущем уже пользоваться этими вариантами настроек. |
Обработка выгрузки и загрузки данных через XML между идентичными конфигурациями с возможностью установки произвольных отборов на выгружаемые объекты. |
|
Подключаемый отчет на системе компоновки данных по типам объектов 1С показывает: 1) Совокупности таблиц SQL для хранения объекта 1С и их предназначение; 2) Число объектов данного типа; 3) Размеры хранения данных и индексов в MB (мегабайтах); 4) Сравнение данных двух баз |
|
Запуск 1С под любым пользователем (без необходимости указания пароля) |
Предназначается для запуска сеанса другого пользователя из своего сеанса 1С (если пароль вам неизвестен). |
Если пользователю не хватает прав на объект, то на практике в 90 % случаев, недостающую роль можно найти через типовой регистр сведений Права ролей. Также с помощью дополнительного отчета или небольшого расширения можно ускорить описанный процесс. |
|
Онлайн диаграмма доступных лицензий 1С и показателей ресурсов сервера 1С в различных измерениях и отборах. |
|
Обработка ищет все объекты базы, в которых одновременно присутствуют перечисленные элементы. Построена на базе типовой обработки Все функции - Стандартные - Поиск ссылок на объект, но позволяет накладывать отбор не по одному объекту, а по нескольким, что позволяет настраивать поиск по комбинациям условий |
|
Структура подчиненности с хронологией документов и кнопками проведения и удаления |
Часто не хватает визуализации хронологии документов в структуре подчиненности и кнопок проведения. Это расширение конфигурации, с функционалом структуры подчиненности документов, отображающее хронологическую последовательность документов во времени и дающее доступ к проведению, отмене проведения, пометке на удаление документов непосредственно в форме подчиненности. |
Обработка для массовой проверки доработок конфигурации: Открытие форм, Печать, Формирование отчетов, Проведение документов, Запись справочников, ПВХ, ПВР. Выдает список обнаруженных ошибок. Рекомендуется применять для тестирования обновленной конфигурации, перед установкой пользователям. В коде используются универсальные методы поэтому подходит для большинства конфигураций, построенных на базе библиотеки стандартных подсистем. |
|
Групповая обработка ссылок вида Объект не найден (502:37855254002e11eb11e73b8f36150d9e) заполняется максимально просто копированием и вставкой из буфера: 1) Выделяет уникальные идентификаторы (далее УИ); 2) Ищет ссылки на объекты базы по УИ; 3) Создаёт пустые объекты с указанным УИ; 4) Регистрирует найденные ссылки для обмена данными. Работает на любых продуктах 8.3 |
|
Внешняя обработка (работает в обычном и управляемом интерфейсе). Пригодиться для работы с узлами распределенных баз данных: 1) Снимает замки блокировки конфигурации подчиненного узла или возвращает их. 2) Дает возможность подключить архив рабочей базы как подчиненный узел без создания образа. 3) Дает возможно синхронизировать конфигурации узлов вручную, если например есть ошибки обмена или размер конфигурации велик для передачи через сообщения обмена. Ситуации описаны в полном описании. Проверялось на платформе 8.1, 8.2, 8.3, для 1С:УПП, 1С:Розница, 1С:Бухгалтерия 1.6, 2.0, 3.0, 1С:ERP |
|
Обработка на управляемых формах для работы с календарями google, событиями календарей и контактами. |
|
Обработка проверяет наличие и решает проблему с ошибкой развернутого сальдо в Оборотно-сальдовой ведомости (регистр бухгалтерии Хозрасчетный) из-за ошибки Универсального редактора реквизитов или кода программиста, устанавливающего пустые ссылки в значениях Валюты, Подразделения, Направления деятельности не равными NULL. И пересчёт итогов тут точно не поможет... |
|
Тест серверного оборудования на допустимое количество пользователей: как это использовать? |
Выполнил 3 разных теста для проверки серверного оборудования (тест 1С, тесты gilev) на возможное число 1С онлайн-пользователей одновременно работающих на нем и интерпретировал результаты тестов через легких, средних и тяжелых пользователей с помощью таблицы с профилями реальных пользователей. |
Перед началом проекта требуется определить параметры серверного и клиентского оборудования, необходимые для работы внедряемой программы 1С:Предприятие, и учесть будущую нагрузку, которая ляжет на систему в реальной рабочей обстановке. Мощность оборудования должна быть достаточной для нормальной работы пользователей. Но как подобрать сервер простым способом? |
|
На время сеанса отключаем контроль остатков и проверку документов в ERP, КА, УТ типовыми средствами и простым расширением. Часто при моделировании примеров бизнес-процессов, на запуске в эксплуатацию или закрытии требуется несколько раз прогнать ситуацию с разными настройками, а для этого изменить, удалить ранее введенную цепочку документов. Дается все это с трудом. Ты уверен, что не навредишь своими действиями системе, но документы цепляют друг друга и ругаются контролями остатков, не разрешая тебе менять их в произвольном порядке. Есть несколько удобных опций для облегчения внесения изменений. |
|
Огорчает один момент в типовых решениях, когда проводится документ, ругаясь на нехватку остатков, система не сообщает, по какому именно регистру проблема. Дополнив сообщения контроля названием регистра, можно уменьшить время расследования проблемы (исключив из процесса необходимость запуска программистом отладки в конфигураторе для выявления имени проблемного регистра). |
|
Для уведомления пользователей программных продуктов 1С о разных событиях, в них включена подсистема «Новостной центр». Это довольно удобная штука, т.к. новостные ленты сообщают о выходе обновлений, о новостях и событиях в сфере учёта. Но можно увеличить пользу от новостной подсистемы используя её локально в рамках 1С базы. Например, внутренняя служба техподдержки или внедряющая компания может через новостную ленту оповещать пользователей информационной базы об изменениях в программе, совещаниях, проведении тестирований, заполнения нужных документов или сдача отчетов к определенной дате и т.п. |
|
Пример технического задания для практического понимания основных разделов. |
|
Кратко описаны основополагающие моменты при старте групповой разработки конфигурации несколькими программистами. Полезно для проектной документации как требование к разработчикам или сопровождающей компании |
Ссылка на компетенции по 1С:ERP - команда со знаниями, умениями и успешными проектами.