Имя: Пароль:
1C
1С v8
Метод .ПолучитьОбласть() макета табдокумента возвращает строку
0 Григорополисец
 
01.06.22
22:26
Здравствуйте, уважаемые форумчане!
Сегодня, при написании кода отчёта в управляемой форме, столкнулся с непонятной проблемой.
Метод макета табличного документа .ПолучитьОбласть() не хочет возвращать часть табличного документа, как написано в справке 1С. Вместо этого тип возвращаемого значения "Строка".

Сам кусок кода ниже.

--------------

ОбъектДляМакета = РеквизитФормыВЗначение("Отчет");
РМ = ОбъектДляМакета.ПолучитьМакет("ОсновнойМакетФР");

Заголовок = РМ.ПолучитьОбласть("Заголовок|МагазиныСтолбец"); // Вот тут в переменную и заливается объект с типом "Строка", а не с типом "Табличный документ". Соответственно, всё, что ниже, уже начинает ругаться.
Заголовок.Параметры.Заполнить(Новый Структура("ДатаНачала, ДатаОкончания", ЭтаФорма.ДатаНачала, ЭтаФорма.ДатаОкончания));
ЭтаФорма.ПолеВыводаФР.Вывести(Заголовок);

--------------

Причём, у меня эта проблема плавающая. То строка возвращается, то нормальный табличный документ, который потом прекрасно добавляется методами .Вывести() или .Присоединить().
Знаю, что сейчас в моде отчёты СКД. Но в таблице Excel мне такое нарисовали, что легче сделать через получение классического макета.

Заранее благодарен хотя бы и за внимание!
1 Бабрак Кармаль
 
01.06.22
22:56
Заголовок, это реквизит формы такой. Строкового типа. Не надо ему это присваивать.
2 Григорополисец
 
01.06.22
23:36
(1) Да, Вы совершенно правы! Ещё одна тонкость от 1С!
На будущее, надо будет приучить себя проверять имена придумываемых переменных на предмет их зарезервированности системой.

Благодарен!
3 Kigo_Kigo
 
02.06.22
08:38
(2) Их не надо проверять если изначально нормально придумывать, на "Заголовок" , а "ЗаголовокОтчетаОСВ" к примеру
4 Kigo_Kigo
 
02.06.22
08:43
+(3) Я на эти грабли еще в клюшках достаточно понаступал
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.