|
|
v7: 7.7: помогите вспомнить вывод остатков регистра
vsy, Злопчинский, A_G, zenon46, АНДР, АгентБезопаснойНацио, GreyK, AntiBuh, 2S, p-soft, MWWRuza, kittystark, NorthWind, lxndr, Prog_man, ТДК, Волшебник, obs191, Guk, s_trikozin, denk32, Indian, 21stas, Sserj, shuhard, vis, Anchorite, pavlika
| ☑ |
|
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
|
Кстати, ставлю на то, что в сабже - регистр не закрыт, настораживает измерение "Счет"... Как рухнет база - стучитесь...
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший