Имя: Пароль:
1C
1C 7.7
v7: 7.7: помогите вспомнить вывод остатков регистра
0 21stas
 
04.07.26
08:15
Помогите вспомнить как вывести остатки регистра на нужную дату в макет.
Делаю перенос данных из 1С7 в 1С8.
Остатки точно есть - я их могу посмотреть универсальной обработкой. Но мне понадобилось из измерения Партия (который типа "Документ") выводить реквизиты документы - сижу, пишу программный код. Достал из архива Yellow tutor - по нему не могу сделать.
Написанный мной программный код запускается, но в макет выводит только шапку.

Процедура Сформировать()
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Остатки");
    
    ОблШапка  = Таб.ПолучитьСекцию("Шапка");          
    ОблСтрока = Таб.ПолучитьСекцию("Строка");
    
    Таб.ВывестиСекцию(ОблШапка);

    РегТМЦ = СоздатьОбъект("Регистр.ОстаткиТМЦ");
    РегТМЦ.ВременныйРасчет(1);
    ДатаОстатков = Дата(2025, 12, 31);
    РассчитатьРегистрыНа(ДатаОстатков);
    РегТМЦ.ВыбратьИтоги();

    Пока РегТМЦ.ПолучитьИтог()=1 Цикл
        ОблСтрока.Параметры.Счет=РегТМЦ.Счет;
        Таб.ВывестиСекцию(ОблСтрока);
    КонецЦикла;

    Таб.ТолькоПросмотр(1);
    Таб.Показать("Остатки по регистру ОстаткиТМЦ на 31.12.2025");
КонецПроцедуры
1 Волшебник
 
04.07.26
07:46
вайбкодите?
2 21stas
 
04.07.26
07:52
(1) Изначально пробовал с помощью ИИ накидать - получилась полная фигня.
Поэтому начал читать описания, переделывать.
То, что сейчас в топике - это уже мой осознанный код. От ИИ остались только хвостики, которые я понял, с которыми согласен.

Основная выборка остатков по регистру написана руками с помощью Yellow tutor.
3 21stas
 
04.07.26
07:53
На 1С 7.7 когда-то хорошо писал, некоторые принципы помню.
Но о-о-очень давно.
4 Волшебник
 
04.07.26
08:00
запускается?
5 21stas
 
04.07.26
08:15
Запускается, но в макет выводит только шапку.

И выдаёт ошибки:
Счет<<?>>
Переменная не определена (Счет)
ТМЦ<<?>>
Переменная не определена (ТМЦ)
Склад<<?>>
Переменная не определена (Склад)
НДС<<?>>
Переменная не определена (НДС)
Партия<<?>>
Переменная не определена (Партия)
Количество<<?>>
Переменная не определена (Количество)
Сумма<<?>>
Переменная не определена (Сумма)
6 АгентБезопасной Нацио
 
04.07.26
10:07
Феерично...
Вы искренне считаете, что в 8.3 эти переменные были бы определены?
7 Волшебник
 
04.07.26
10:32
(5) Хорошо, что запускается.
8 Злопчинский
 
04.07.26
12:56
(0) На и По !!!
9 Злопчинский
 
04.07.26
13:14
Набежали, живодеры...
10 Злопчинский
 
04.07.26
13:15
Процедура Сформировать()

    ДатаОстатков = Дата(2025, 12, 31); // НА - начало, ПО - конец, на!
    
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Остатки");
    Таб.ВывестиСекцию("Шапка");

    РегТМЦ = СоздатьОбъект("Регистр.ОстаткиТМЦ");
    РегТМЦ.ВременныйРасчет(1);

    РассчитатьРегистрыПо(ДатаОстатков); // ПО!!!
    РегТМЦ.ВыбратьИтоги();

    Пока РегТМЦ.ПолучитьИтог()=1 Цикл
        //{--- определить переменные вывода -----------------------
        ИзмерениеХ = РегТМЦ.ИзмерениеХ; // измерениеХ - указано как выражение в ячеке Макета
        РесурсХ = РегТМЦ.РесурсХ; // РесурсХ - аналогично
        ИзмерениеХРеквизитКакойТо = РегТМЦ.ИзмерениеХ.РеквизитКакойТо; // аналогично
        //}--- определить переменные вывода -----------------------
        Таб.ВывестиСекцию("Строка");
        Сообщить(""+РегТМЦ.Номенклатура+" "+РегТМЦ.Количество);
    КонецЦикла;

    Таб.ТолькоПросмотр(1);
    Таб.Показать("Остатки по регистру ОстаткиТМЦ на "+(ДатаОстатков+1)); // ПО и НА !!!!
КонецПроцедуры
11 Злопчинский
 
04.07.26
14:00
Кстати, ставлю на то, что в сабже - регистр не закрыт, настораживает измерение "Счет"... Как рухнет база - стучитесь...