Имя: Пароль:
1C
1С v8
Как создать ТаблицуЗначений с колонками в одной процедуре, а заполнить значениями в другой
0 Anchovy99
 
22.05.25
13:36
Всем добрый день
Подскажите, пожалуйста, как я могу заполнить данными Таблицу значений, созданную в другой процедуре?

Пример:
Процедура1
ТЗ = Новый ТаблицаЗначений;    
    
    ТЗ.Колонки.Добавить("СНИЛС");
    ТЗ.Колонки.Добавить("Профессия");
    ТЗ.Колонки.Добавить("НомерРабочегоМестаВОТ");
    ТЗ.Колонки.Добавить("РМВОТ");

    СтрокаТЗ = ТЗ.Добавить();
КонецПроцедуры;

Процедура2
// Как я могу ее здесь вызвать?
// Пробовала так, но выходит ошибка:
        СтрокаТЗ = Процедура1.СтрокаТЗ;
        СтрокаТЗ.СНИЛС = ...
1 Ненавижу 1С
 
гуру
22.05.25
13:45
(0) это на каком языке?
2 Anchovy99
 
22.05.25
13:49
(1) 1С
3 2S
 
22.05.25
13:50
(0) Беги, глупец! Сейчас съедят.
4 Anchovy99
 
22.05.25
13:52
(3) Пока не съели, помогите
5 2S
 
22.05.25
13:56
Процедура2(СсылкаНаТЗ)
НоваяСтрока = СсылкаНаТЗ.Добавить()
....
КонецПроцедуры

Только зачем?

ТвояТЗ.Загрузить(ФункцияПолученияДругойТЗ());
6 Мультук
 
гуру
22.05.25
14:02
(0)
Пример 1

Функция получитьШаблонТз()
    ТЗ = Новый ТаблицаЗначений;    
    
    ТЗ.Колонки.Добавить("СНИЛС");
    ТЗ.Колонки.Добавить("Профессия");
    ТЗ.Колонки.Добавить("НомерРабочегоМестаВОТ");
    ТЗ.Колонки.Добавить("РМВОТ"); 

    Возврат тз;
КонецФункции


Процедура Процедура2()
   тз = получитьШаблонТз();

        СтрокаТЗ = тз.Добавить();
        СтрокаТЗ.СНИЛС = ..



Пример2
Процедура получитьШаблонТз(тз)
    ТЗ = Новый ТаблицаЗначений;    
    
    ТЗ.Колонки.Добавить("СНИЛС");
    ТЗ.Колонки.Добавить("Профессия");
    ТЗ.Колонки.Добавить("НомерРабочегоМестаВОТ");
    ТЗ.Колонки.Добавить("РМВОТ"); 

КонецПроцедуры


Процедура Процедура2()
   тз = Неопределено;
   получитьШаблонТз(тз);

   СтрокаТЗ = тз.Добавить();
   СтрокаТЗ.СНИЛС = ..

7 Ёпрст
 
гуру
22.05.25
13:55
(4)
Функция Вася()
    ТЗ = Новый ТаблицаЗначений;    
    ТЗ.Колонки.Добавить("СНИЛС");
    ТЗ.Колонки.Добавить("Профессия");
    ТЗ.Колонки.Добавить("НомерРабочегоМестаВОТ");
    ТЗ.Колонки.Добавить("РМВОТ");
    Возврат ТЗ;
КонецФункции

Процедура Вася2()
    ТЗ = Вася();
    СтрокаТЗ = ТЗ.Добавить();
    СтрокаТЗ.СНИЛС = ...
8 Гипервизор
 
22.05.25
13:58
(6) 'СтрокаТЗ = тз.СтрокаТЗ'
Это в 8.5 такое завезли или как? )
9 Мультук
 
гуру
22.05.25
14:02
(8)

Что искусственный разум в (0) то я и скопи-пастил.
Поправил, но имхо тут всё бесполезно.
10 Гипервизор
 
22.05.25
14:05
(9) Пожалуй, да - не поможет.
11 lucky_
 
22.05.25
14:09
(0) "созданную в другой процедуре?"
переделай на функцию и не делай себе голову.
12 СвинТуз
 
22.05.25
14:38
(0)
Увы классов нет и создать экземпляр класса нельзя.
Синтаксис слегка другой.
13 Волшебник
 
22.05.25
14:44
Я ничего не говорил, но вы поняли...
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс