Исправление пустых значений субконто (Null, Неопределено) в проводках, возникающих при изменении настройки видов субконто на счете

15.11.20

Задачи пользователя - Корректировка данных

Обработка для исправления пустых значений субконто (Null, Неопределено) в проводках, возникающих при изменении настройки видов субконто на счете.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Исправление пустых значений субконто (Null, Неопределено) в проводках, возникающих при изменении настройки видов субконто на счете:
.epf 8,99Kb
182
182 Скачать (1 SM) Купить за 1 850 руб.

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

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

Тестирование и исправление в данном случае не помогает. Помогает перепроведение документов, т.к. в этом случае проводки перезаписываются с правильными значениями субконто.

Но не всегда есть возможность и желание у пользователей перепроводить документы (период закрыт, страшно за другие движения документов и т.д.). 

Данная обработка предназначена для исправления пустых значений субконто в данных проводках. Т.е. для записи пустых значений корректных типов.

Основной код взят из //infostart.ru/public/147199/

 

Выполняется только перезапись проводок по регистру бухгалтерии Хозрасчетный без перепроведения документов.

Обработка разработана и протестирована на релизе Бухгалтерия предприятия КОРП, редакция 3.0 (3.0.75.58). Версия платформы: 8.3.15.1830.

Порядок работы:

Перед выполнением обработки рекомендуется сделать резервную копию базы данных.

 

Порядок работы с обработкой:

 

1. Открыть файл обработки через Файл-Открыть

2. Нажать кнопку "Найти проводки с некорректными значениями субконто". В результате в табличной части обработки будут отображены проблемные проводки, с указанием информации о документе-регистраторе, номере проводки, виде движения (дебет/кредит) и счете.

3. При наличии проблемных проводок нажать кнопку "Выполнить исправление"

 

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

Рекомендуем запустить ее выполнение в период низкой пользовательской нагрузки на базу данных.

Работа пользователей при этом в системе не блокируется.

обработка неправильное значение субконто исправление null Неопределено

См. также

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    32667    106    152    

73

SALE! 20%

Корректировка данных Системный администратор Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Незаменимая обработка для сопровождения конфигураций: ERP, УТ, КА. Позволяет вычистить многие ошибки в ключах аналитики, в ключевых справочниках конфигурации.

3600 2880 руб.

10.02.2017    110501    662    174    

702

Закрытие периода Корректировка данных Бухгалтер Пользователь Платформа 1С v8.3 Оперативный учет 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Управленческий учет Платные (руб)

Закрытие месяца - важный процесс в современных конфигурациях, таких как УТ 11.4, УТ 11.5, КА 2.4, КА 2.5 ERP 2.4,ERP 2.5, КА 2 Казахстан, УТ 3 Казахстан регламентные операции влияют на расчет себестоимости, и ошибки в данном расчете не дают картины деятельности организации.

4800 руб.

27.10.2021    23918    241    35    

78

Корректировка данных Программист Бухгалтер Пользователь Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет НДС Платные (руб)

Обработка предназначена для корректировки входящего НДС при смене системы налогообложения индивидуального предпринимателя с УСН на ОСНО в 1С:Бухгалтерия предприятия 3.0

4000 руб.

18.07.2024    688    1    0    

1

Корректировка данных Зарплата Бухгалтер Пользователь Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Внешняя обработка предназначена для исправления самых различных ошибок, возникших по самым разным причинам. Общее проявление этих ошибок видно в различии данных между: проводками и различными отчетами по НДФЛ, заполнении ведомостей на выдачу зарплаты, неверным расчетом НДФЛ при начислении ЗП и т.д.

3600 руб.

09.02.2024    1680    11    5    

14
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Award 19.02.20 23:46 Сейчас в теме
Большое спасибо. Обработка работает. Помогла.
2. tezin 574 20.02.20 10:24 Сейчас в теме
3. kav434 20.04.20 12:19 Сейчас в теме
Уважаемый tezin!
Из-за отсутствия стартмани, не могу скачать и проверить работу данной обработки.
Возможно, она поможет решить мою проблему. Прошу дать ссылку на скачивание.
Обещаю оставить отзыв по результатам работы.
Спасибо.
4. kav434 21.04.20 13:40 Сейчас в теме
Спасибо tezin за предоставленную возможность протестировать работу обработки.
На моей базе выявилось несколько десятков проблемных операций.
После первого прогона, их осталось порядка 15.
Последующие прогоны, ситуацию не поправили, эти 15 операций находятся, но не исправляются. Вполне возможно, что их и нельзя поправить.
Но самое интересное, что основная проблема - наличие 3-х пустых субконто "Продукция", привязанного к справочнику "Номенклатура", осталась. Их собственно и нет в списке оставшихся операций, как не было и в полном списке. Видимо у меня проблема в чем-то другом.
Конфигурация БП КОРП 3.0.77.45. В одной базе работают несколько организаций-филиалов, у кого-то одно пустое субконто (<...>), у кого-то 2, по всем организациям показывает 3. Внесено изменение в конфигурацию, субконто "Продукция" прицеплено третьим по счету к счету 20.01.
Может у кого-то есть идеи?
Спасибо.
5. Fox_65 1 30.07.20 11:16 Сейчас в теме
Скачал обработку. Пока тестирую. Сразу выявился недостаток. На больших базах это нереально долго, а на слабых машинах и вообще невозможно. У себя добавил отбор по периоду (лучше проверять по месяцам, чем вообще никак). Советую добавить проверку за период.
6. Fox_65 1 30.07.20 17:08 Сейчас в теме
Спасибо.Обработка работает. Только начальный запрос долго выполняется и сильно грузит память. Вот бы его как-нибудь оптимизировать.
7. buy_sale 220 20.08.20 15:06 Сейчас в теме
Кстати в БП3 Корп субконто неопределено появилось после смены флага в настройках Учет по складам с Количество на количество и сумму. Имейте это ввиду.
8. vinokurovey 19 13.11.20 04:05 Сейчас в теме
Запрос по заполнению информации о некорректных движениях выполняется очень долго.
Для его ускорения можно внести в запрос следующие изменения в окончание текста запроса(результат выполнения остается прежним, но скорость выполнения увеличивается в десятки раз):
Было:
   |ГДЕ
    |    НЕ (Движения.Регистратор, Движения.НомерСтроки, Движения.ВидДвиженияБуквой, ХозрасчетныйВидыСубконто.ВидСубконто) В
    |                (ВЫБРАТЬ
    |                    ДвиженияССубконто.Регистратор,
    |                    ДвиженияССубконто.НомерСтроки,
    |                    ДвиженияССубконто.ВидДвиженияБуквой,
    |                    ДвиженияССубконто.ВидСубконто
    |                ИЗ
    |                    ДвиженияССубконто КАК ДвиженияССубконто)
Стало:
    |        ЛЕВОЕ СОЕДИНЕНИЕ ДвиженияССубконто КАК ДвиженияССубконто
    |        ПО Движения.Регистратор = ДвиженияССубконто.Регистратор
    |            И Движения.НомерСтроки = ДвиженияССубконто.НомерСтроки
    |            И Движения.ВидДвиженияБуквой = ДвиженияССубконто.ВидДвиженияБуквой
    |            И (ХозрасчетныйВидыСубконто.ВидСубконто = ДвиженияССубконто.ВидСубконто)
    |ГДЕ
    |    ДвиженияССубконто.ВидСубконто ЕСТЬ NULL
Показать
9. tezin 574 15.11.20 18:26 Сейчас в теме
(8) Принято )) Спасибо!
Внес изменения, у меня примерно в 170 раз ускорилось время выполнения.
Заодно вывел информацию о количестве найденных проводок и затраченном времени поиска.
10. bocharovki 7 25.04.21 13:25 Сейчас в теме
Спасибо за основу. Если сделать вот так то можно и косяк с НЕОПРЕДЕЛЕНО в самом субконто исправить. Ну и отбор по счету.


&НаСервере
Процедура НайтиПроводкиСНекорректнымиЗначениямиСубконтоНаСервере()

	Начало = ТекущаяДата();
	
	Запрос = Новый Запрос;
	
	Запрос.УстановитьПараметр("НеОтбиратьПоСчету",Не ЗначениеЗаполнено(СчетОтбор));
	Запрос.УстановитьПараметр("Счет",СчетОтбор);
	
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	Хозрасчетный.Регистратор КАК Регистратор,
	|	Хозрасчетный.НомерСтроки КАК НомерСтроки,
	|	Хозрасчетный.СчетДт КАК Счет,
	|	Хозрасчетный.Сумма КАК Сумма,
	|	Хозрасчетный.Организация КАК Организация,
	|	ЗНАЧЕНИЕ(ВидДвиженияБухгалтерии.Дебет) КАК ВидДвижения,
	|	""Д"" КАК ВидДвиженияБуквой
	|ПОМЕСТИТЬ Движения
	|ИЗ
	|	РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
	|ГДЕ
	|	Хозрасчетный.СчетДт В ИЕРАРХИИ (&Счет) или &НеОтбиратьПоСчету
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	Хозрасчетный.Регистратор,
	|	Хозрасчетный.НомерСтроки,
	|	Хозрасчетный.СчетКт,
	|	Хозрасчетный.Сумма,
	|	Хозрасчетный.Организация,
	|	ЗНАЧЕНИЕ(ВидДвиженияБухгалтерии.Кредит),
	|	""К""
	|ИЗ
	|	РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
	|ГДЕ
	|	Хозрасчетный.СчетКт В ИЕРАРХИИ (&Счет) или &НеОтбиратьПоСчету
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	Движения.Регистратор КАК Регистратор,
	|	Движения.НомерСтроки КАК НомерСтроки,
	|	ВЫБОР
	|		КОГДА ХозрасчетныйСубконто.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияБухгалтерии.Кредит)
	|			ТОГДА ""К""
	|		ИНАЧЕ ""Д""
	|	КОНЕЦ КАК ВидДвиженияБуквой,
	|	ХозрасчетныйСубконто.ВидДвижения КАК ВидДвижения,
	|	ХозрасчетныйСубконто.Вид КАК ВидСубконто,
	|	ХозрасчетныйСубконто.Значение КАК Субконто
	|ПОМЕСТИТЬ ДвиженияССубконто
	|ИЗ
	|	Движения КАК Движения
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Субконто КАК ХозрасчетныйСубконто
	|		ПО Движения.Регистратор = ХозрасчетныйСубконто.Регистратор
	|			И Движения.НомерСтроки = ХозрасчетныйСубконто.НомерСтроки
	|			И Движения.ВидДвижения = ХозрасчетныйСубконто.ВидДвижения
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	Движения.Регистратор КАК Регистратор,
	|	Движения.НомерСтроки КАК НомерПроводки,
	|	Движения.Счет КАК Счет,
	|	Движения.ВидДвижения КАК ВидДвижения
	|ИЗ
	|	Движения КАК Движения
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПланСчетов.Хозрасчетный.ВидыСубконто КАК ХозрасчетныйВидыСубконто
	|		ПО Движения.Счет = ХозрасчетныйВидыСубконто.Ссылка
	|		ЛЕВОЕ СОЕДИНЕНИЕ ДвиженияССубконто КАК ДвиженияССубконто
	|		ПО Движения.Регистратор = ДвиженияССубконто.Регистратор
	|			И Движения.НомерСтроки = ДвиженияССубконто.НомерСтроки
	|			И Движения.ВидДвиженияБуквой = ДвиженияССубконто.ВидДвиженияБуквой
	|			И (ХозрасчетныйВидыСубконто.ВидСубконто = ДвиженияССубконто.ВидСубконто)
	|ГДЕ
	|	ДвиженияССубконто.ВидСубконто ЕСТЬ NULL
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	Движения.Регистратор,
	|	Движения.НомерСтроки,
	|	Движения.Счет,
	|	Движения.ВидДвижения
	|ИЗ
	|	Движения КАК Движения
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПланСчетов.Хозрасчетный.ВидыСубконто КАК ХозрасчетныйВидыСубконто
	|		ПО Движения.Счет = ХозрасчетныйВидыСубконто.Ссылка
	|		ЛЕВОЕ СОЕДИНЕНИЕ ДвиженияССубконто КАК ДвиженияССубконто
	|		ПО Движения.Регистратор = ДвиженияССубконто.Регистратор
	|			И Движения.НомерСтроки = ДвиженияССубконто.НомерСтроки
	|			И Движения.ВидДвиженияБуквой = ДвиженияССубконто.ВидДвиженияБуквой
	|			И (ХозрасчетныйВидыСубконто.ВидСубконто = ДвиженияССубконто.ВидСубконто)
	|ГДЕ
	|	НЕ ДвиженияССубконто.ВидСубконто ЕСТЬ NULL
	|	И ДвиженияССубконто.Субконто = НЕОПРЕДЕЛЕНО
	|
	|УПОРЯДОЧИТЬ ПО
	|	Регистратор";
	
	Проводки.Загрузить(Запрос.Выполнить().Выгрузить());
	
	ВремяПоиска = ТекущаяДата() - Начало;
	
	Элементы.ДекорацияНайденоПроводок.Заголовок = "Найдено проводок: " + СокрЛП(Проводки.Количество()) + " (время поиска: " + СокрЛП(ВремяПоиска) + " сек.)";
	
	УправлениеФормой();
	
КонецПроцедуры

Показать
Doomino; Alex17; +2 Ответить
11. Doomino 53 26.01.22 13:13 Сейчас в теме
(10)
Процедура НайтиПроводкиСНекорректнымиЗначениямиСубконтоНаСервере()

Начало = ТекущаяДата();

Запрос = Новый Запрос;

Запрос.УстановитьПараметр("НеОтбиратьПоСчету",Не ЗначениеЗаполнено(СчетОтбор));
Запрос.УстановитьПараметр("Счет",СчетОтбор);

Запрос.Текст =
"ВЫБРАТЬ
| Хозрасчетный.Регистратор КАК Регистратор,
| Хозрасчетный.НомерСтроки КАК НомерСтроки,
| Хозрасчетный.СчетДт КАК Счет,
| Хозрасчетный.Сумма КАК Сумма,
| Хозрасчетный.Организация КАК Организация,
| ЗНАЧЕНИЕ(ВидДвиженияБухгалтерии.Дебет) КАК ВидДвижения,
| ""Д"" КАК ВидДвиженияБуквой
|ПОМЕСТИТЬ Движения
|ИЗ
| РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
|ГДЕ
| Хозрасчетный.СчетДт В ИЕРАРХИИ (&Счет) или &НеОтбиратьПоСчету
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| Хозрасчетный.Регистратор,
| Хозрасчетный.НомерСтроки,
| Хозрасчетный.СчетКт,
| Хозрасчетный.Сумма,
| Хозрасчетный.Организация,
| ЗНАЧЕНИЕ(ВидДвиженияБухгалтерии.Кредит),
| ""К""
|ИЗ
| РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
|ГДЕ
| Хозрасчетный.СчетКт В ИЕРАРХИИ (&Счет) или &НеОтбиратьПоСчету
|;
|
|////////////////////////////////////////////////////////////­­////////////////////
|ВЫБРАТЬ
| Движения.Регистратор КАК Регистратор,
| Движения.НомерСтроки КАК НомерСтроки,
| ВЫБОР
| КОГДА ХозрасчетныйСубконто.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияБухгалтерии.Кредит)
| ТОГДА ""К""
| ИНАЧЕ ""Д""
| КОНЕЦ КАК ВидДвиженияБуквой,
| ХозрасчетныйСубконто.ВидДвижения КАК ВидДвижения,
| ХозрасчетныйСубконто.Вид КАК ВидСубконто,
| ХозрасчетныйСубконто.Значение КАК Субконто
|ПОМЕСТИТЬ ДвиженияССубконто
|ИЗ
| Движения КАК Движения
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Субконто КАК ХозрасчетныйСубконто
| ПО Движения.Регистратор = ХозрасчетныйСубконто.Регистратор
| И Движения.НомерСтроки = ХозрасчетныйСубконто.НомерСтроки
| И Движения.ВидДвижения = ХозрасчетныйСубконто.ВидДвижения
|;
|
|////////////////////////////////////////////////////////////­­////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| Движения.Регистратор КАК Регистратор,
| Движения.НомерСтроки КАК НомерПроводки,
| Движения.Счет КАК Счет,
| Движения.ВидДвижения КАК ВидДвижения
|ИЗ
| Движения КАК Движения
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПланСчетов.Хозрасчетный.ВидыСубконто КАК ХозрасчетныйВидыСубконто
| ПО Движения.Счет = ХозрасчетныйВидыСубконто.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ ДвиженияССубконто КАК ДвиженияССубконто
| ПО Движения.Регистратор = ДвиженияССубконто.Регистратор
| И Движения.НомерСтроки = ДвиженияССубконто.НомерСтроки
| И Движения.ВидДвиженияБуквой = ДвиженияССубконто.ВидДвиженияБуквой
| И (ХозрасчетныйВидыСубконто.ВидСубконто = ДвиженияССубконто.ВидСубконто)
|ГДЕ
| ДвиженияССубконто.ВидСубконто ЕСТЬ NULL
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| Движения.Регистратор,
| Движения.НомерСтроки,
| Движения.Счет,
| Движения.ВидДвижения
|ИЗ
| Движения КАК Движения
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПланСчетов.Хозрасчетный.ВидыСубконто КАК ХозрасчетныйВидыСубконто
| ПО Движения.Счет = ХозрасчетныйВидыСубконто.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ ДвиженияССубконто КАК ДвиженияССубконто
| ПО Движения.Регистратор = ДвиженияССубконто.Регистратор
| И Движения.НомерСтроки = ДвиженияССубконто.НомерСтроки
| И Движения.ВидДвиженияБуквой = ДвиженияССубконто.ВидДвиженияБуквой
| И (ХозрасчетныйВидыСубконто.ВидСубконто = ДвиженияССубконто.ВидСубконто)
|ГДЕ
| НЕ ДвиженияССубконто.ВидСубконто ЕСТЬ NULL
| И ДвиженияССубконто.Субконто = НЕОПРЕДЕЛЕНО
|
|УПОРЯДОЧИТЬ ПО
| Регистратор";

Проводки.Загрузить(Запрос.Выполнить().Выгрузить());

ВремяПоиска = ТекущаяДата() - Начало;

Элементы.ДекорацияНайденоПроводок.Заголовок = "Найдено проводок: " + СокрЛП(Проводки.Количество()) + " (время поиска: " + СокрЛП(ВремяПоиска) + " сек.)";

УправлениеФормой();

КонецПроцедуры
Показать


Спасибо, так намного лучше! Сработало на ерп.
bocharovki; +1 Ответить
12. xDD 8 12.09.22 13:07 Сейчас в теме
"Правильной ситуацией является наличие пустых значений субконто, соответсвующего типа в данных проводках"
В случае если субконто имеет множественный тип, то значение неопределено является верным
13. sergkom 3 19.03.23 00:55 Сейчас в теме
Бухгалтерия предприятия, редакция 3.0 (3.0.131.34)

Через отладчик нашел, что на счетах 05 и 04.01 есть в результатах запроса Подразделения пустое, так Null.
Интересно, что учет по подразделению на этих счетах выключен.


Скачал обработку. Поиск результатов не дал.
14. user1715114 20.04.24 12:13 Сейчас в теме
Уважаемый tezin!
Из-за отсутствия стартмани, не могу скачать и проверить работу данной обработки.
Возможно, именно она поможет решить мою проблему. Прошу дать ссылку на скачивание.
Обещаю оставить отзыв по результатам работы. Другие обработки работают очень долго и не находят проблем.
Спасибо.
Оставьте свое сообщение