gifts2017

Удаление Неопределено из Регистра Бухгалтерии

Опубликовал Анастасия Пакулина (nasty051189) в раздел Обработки - Универсальные обработки

При добавлении нового субконто счету, бывает возникает ситуация, когда в ОСВ по счету с группировкой по этому субконто появляются две строки <...>. Это субконто с типом Неопределено и Пустая ссылка.

Эта обработка позволяет найти и исправить Неопределено на ПустаяСсылка. Указывается период за который исправляем, Субконто и тип Пустой ссылки.

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

Наименование Файл Версия Размер Кол. Скачив.
udalenieneopredelenoizregistrabukhgalterii.epf
.epf 8,40Kb
15.01.14
23
.epf 8,40Kb 23 Скачать

См. также

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

Комментарии

1. Dimon Phoenix (NGPhoenix) 20.06.13 22:49
Есть несколько замечаний по коду:
1) Регистр надо сохранять не после обработки каждой записи по дебету или кредиту, а после обработки всего набора записей документа, т.е. в конце внешнего цикла
2) Не стоит искать значение плана вида характеристик по наименованию, когда известно его значение заранее
3) Подсчет записей происходит неверно, т.к. считается число строк, а в значении "из" число документов.
4) Если в запросе поставить "выбирать различные", то и сворачивать таблицу по регистратору не нужно
После всего вышесказанного код будет выглядеть так + вставил прерывание на всякий случай:
Процедура Обработать() Экспорт
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
| ЕПСБУСубконто.Регистратор
|ИЗ
| РегистрБухгалтерии.ЕПСБУ.Субконто КАК ЕПСБУСубконто
|ГДЕ
| ЕПСБУСубконто.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
| И ЕПСБУСубконто.Вид = &Вид
| И ЕПСБУСубконто.Значение = НЕОПРЕДЕЛЕНО
|
|УПОРЯДОЧИТЬ ПО
| ЕПСБУСубконто.Регистратор.Дата";
Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", КонецДня(ДатаОкончания));
Запрос.УстановитьПараметр("Вид", ВыбСубконто);
Результат = Запрос.Выполнить().Выгрузить();
КолЗ = Результат.Количество();
КолД = Результат.Количество();
ТекДата = ТекущаяДата();
Сообщить("количество документов " + КолД + ". Количество записей " + КолЗ + " " + ТекущаяДата());
н = 0;

Для Каждого Стр Из Результат Цикл
Док = Стр.Регистратор;
Рег = РегистрыБухгалтерии.ЕПСБУ.СоздатьНаборЗаписей();
Рег.Отбор.Регистратор.Значение = Док;
Рег.Прочитать();

Для Каждого Дв Из Рег Цикл
Для Каждого Субконто Из Дв.СубконтоДт Цикл
Если Субконто.Ключ = ВыбСубконто Тогда
Если Субконто.Значение = Неопределено Тогда
Дв.СубконтоДт.Вставить(ВыбСубконто, ТипСубконто.Ссылка);
КонецЕсли;
КонецЕсли;
КонецЦикла;

Для Каждого Субконто Из Дв.СубконтоКт Цикл
Если Субконто.Ключ = ВыбСубконто Тогда
Если Субконто.Значение = Неопределено Тогда
Дв.СубконтоКт.Вставить(ВыбСубконто, ТипСубконто.Ссылка);
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЦикла;
Рег.Записать();
н = н+1;
Состояние("Записан " + н + " из " + КолЗ + ". Скорость " + Окр((ТекущаяДата() - ТекДата)/н,5) + " " + Строка(Док));
ОбработкаПрерыванияПользователя();
КонецЦикла;
Сообщить("Обработка завершена");
КонецПроцедуры
item; AleksR; +2 Ответить
2. sumixam (sumixam) 25.07.14 14:13
у меня такая проблемка разьехался 71.01 счет, запросом проверил, что есть субконто с видом NULL, как мне их заменить на НЕОПРЕДЕЛННО или ПУСТУЮ ссылку чтобы схлопнуть субконто...Заранее Спасибо
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа