Версия для печати темы (https://pro1c.org.ua/index.php?s=7c25528a39e9ec83171119585b2a75a1&showtopic=55622)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ метод ВыгрузитьКолонку не досупен

Автор: lolmatrix 09.12.19, 9:55

Здравствуйте,уважаемые Форумчане, подскажите пожалуйста, почему не доступен метод ВыгрузитьКолонку в ДанныеФормыКоллекция, что-то не так пишу? Заранее благодарен за ответы, пишу собственную конфигурацию 1с 8.3

 
&НаСервере
Функция ПолучаемКолонку(ТипыЦен)
Колонка = ТипыЦен.ВыгрузитьКолонку("ТипЦен");//ДанныеформыКоллекция
Возврат Колонка;    
КонецФункции
&НаКлиенте
Процедура ПриОткрытии(Отказ)
    
    ТипыЦен = Объект.ТипыЦен;
Колонка =  ПолучаемКолонку(ТипыЦен);

    СписокТиповЦен.ЗагрузитьЗначения(Колонка);
КонецПроцедуры

Автор: sava1 09.12.19, 10:11

тут , скорее, ТипыЦен недоступна. Через Объект.ТипыЦен - не пробовали ?

Автор: lolmatrix 09.12.19, 10:25

sava1 @ Сегодня, 11:11 * ,
пробовал та же ошибка

Автор: Макс1С 09.12.19, 11:14

lolmatrix @ Сегодня, 10:25 * ,
ВыгрузитьКолонку применяется к табличной части или к таблице значений, для ДанныеФормыКоллекция такого метода действительно нет.
Вам пригодится ДанныеФормыВЗначение()
Например так:

ВремТабл = ДанныеФормыВЗначение(ТипыЦен,Тип("ТаблицаЗначений"));
Колонка = ВремТабл.ВыгрузитьКолонку("ТипЦен")

В этом примере "ТипыЦен" - реквизит формы с типом ТЗ

Автор: lolmatrix 09.12.19, 12:05

Макс1С @ Сегодня, 12:14 * ,
спасибо, теперь ошибка такая
ВремТабл = ДанныеФормыВЗначение(ТипыЦен,Тип("ТаблицаЗначений"));
по причине:
Недопустимое значение параметра (параметр номер '1'), скажите ,
а есть у ДанныеФормыКоллекция метод выгрузить, как его правильно написать, пробовал по разному тоже пишет нет метода им же тоже можно колонку выгузить?

Автор: sava1 09.12.19, 13:18

Цитата(lolmatrix @ 09.12.19, 9:55) *
&НаСервере Функция ПолучаемКолонку(ТипыЦен) Колонка = ТипыЦен.ВыгрузитьКолонку("ТипЦен");//ДанныеформыКоллекция Возврат Колонка; КонецФункции &НаКлиенте Процедура ПриОткрытии(Отказ) ТипыЦен = Объект.ТипыЦен; Колонка = ПолучаемКолонку(ТипыЦен); СписокТиповЦен.ЗагрузитьЗначения(Колонка); КонецПроцедуры


зачем этот бред с Сервером.
Выгрузите колонку на клиенте

Автор: lolmatrix 09.12.19, 13:30

написано в справке, что доступность на Сервере
ДанныеФормыКоллекция.Выгрузить (FormDataCollection.Unload)
Доступность:
Сервер, мобильное приложение(сервер).

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    
    ТипыЦен = Объект.ТипыЦен;
    СписокТиповЦен.ЗагрузитьЗначения(ТипыЦен.ВыгрузитьКолонку("ТипЦен"));
КонецПроцедуры


Так тоже не работает

Автор: sava1 09.12.19, 13:33

а просто обойти и заполнить список ?

Автор: lolmatrix 09.12.19, 13:35

sava1 @ Сегодня, 14:33 * ,
можно конечно и обойти, спасибо, попробую обойти, но есть же метод выгрузить, хочу понят как ? примера в Синтаксис помощнике нет

Автор: sava1 09.12.19, 14:01

Цитата(lolmatrix @ 09.12.19, 12:05) *
теперь ошибка такая
ВремТабл = ДанныеФормыВЗначение(ТипыЦен,Тип("ТаблицаЗначений"));
по причине:


ВремТабл = ДанныеФормыВЗначение("ТипыЦен",Тип("ТаблицаЗначений"));

Автор: lolmatrix 09.12.19, 14:12

sava1 @ Сегодня, 15:01 * ,
спасибо, Всем за ответы, если можно напишите пожалуйста с пример выгрузить из ДанныеФормыКоллекция
решил так

&НаКлиенте
Процедура ПриОткрытии(Отказ)
        ТипыЦен = Объект.ТипыЦен;
Для каждого Элемент из ТипыЦен Цикл
    
    СписокТиповЦен.Добавить(Элемент.Типцен);
    КонецЦикла;

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

Автор: Макс1С 09.12.19, 17:54

lolmatrix @ Сегодня, 13:30 * ,
У вас Табличная часть объекта "ТипыЦен" поэтому можно так:

ВремТабл = ДанныеФормыВЗначение(Объект.ТипыЦен,Тип("ТаблицаЗначений"));

или
ВремТабл = Объект.ТипыЦен.Выгрузить()

или обойти циклом

Автор: TipsyKID 09.12.19, 19:41

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

Автор: lolmatrix 10.12.19, 6:43

TipsyKID @ Вчера, 20:41 * ,
Спасибо, так я тоже пробовал метод выгрузить не доступен

Автор: fly 10.12.19, 13:05

Цитата(lolmatrix @ 10.12.19, 6:43) *
СписокТиповЦен.ЗагрузитьЗначения(Колонка);

Объект.ТипыЦен

я так понимаю, есть табличная часть "ТипыЦен"

Колонка =  ПолучаемКолонку(ТипыЦен);

получаем: Тип = ДанныеФормыКоллекция

а у этого типа (ДанныеФормыКоллекция) нет метода
ВыгрузитьКолонку("");

есть только - Выгрузить (Unload)

Цитата(lolmatrix @ 10.12.19, 6:43) *
TipsyKID @ Вчера, 20:41 ,
Спасибо, так я тоже пробовал метод выгрузить не доступен


что вы не то пробовали, работает если сначала ДанныеФормы - выгрузить в ТаблицуЗначений, потом из Таблицы значений выгрузить колонку

&НаКлиенте
Процедура ПриОткрытии(Отказ)
         ТипыЦен = Объект.ТипыЦен;
         // ----- выгружаем ДанныеФормыКолекция в Таблицу значений
         ТЗ = ТипыЦен.Выгрузить();
         // -----
         Колонка = ПолучаемКолонку(ТЗ);
        
         СписокТиповЦен.ЗагрузитьЗначения(Колонка);
КонецПроцедуры


&НаСервере
Функция ПолучаемКолонку(ТипыЦен)
    
    Колонка =  ТипыЦен.ВыгрузитьКолонку("ТипЦен");
    Возврат Колонка;
КонецФункции

Автор: Макс1С 11.12.19, 9:32

fly @ Вчера, 13:05 * ,
Коллега, вы немного напутали, метод Выгрузить() для ДанныеФормыКоллекция недоступен на клиенте.
lolmatrix @ Вчера, 6:43 * ,
Если у вас табличная часть, в вашей серверной процедуре пишите:

Колонка = Объект.ТипыЦен.ВыгрузитьКолонку("ТипЦен")

Если "Типы цен" - просто реквизит формы:
ВремТабл = ДанныеФормыВЗначение(ТипыЦен,Тип("ТаблицаЗначений"));
Колонка = ВремТабл.ВыгрузитьКолонку("ТипЦен")

ИЛИ:
ВремТабл = ТипыЦен.Выгрузить(,"ТипЦен"); //можно как со вторым параметром  так и без него, возвращаемый результат - ТЗ
Колонка = ВремТабл.ВыгрузитьКолонку("ТипЦен")

Автор: fly 11.12.19, 10:10

Цитата(Макс1С @ 11.12.19, 9:32) *
Коллега, вы немного напутали, метод Выгрузить() для ДанныеФормыКоллекция недоступен на клиенте.

Реально спасибо, так как не обратил внимание - и перенес на Клиент
Изначально
ТЗ = ТипыЦен.Выгрузить();

делал на сервере - отвлекся на другую задачу,и вернувшись - потом для более похожести на изначальный код. перенес на клиент.

Цитата(Макс1С @ 11.12.19, 9:32) *
Если у вас табличная часть, в вашей серверной процедуре пишите:
Колонка = Объект.ТипыЦен.ВыгрузитьКолонку("ТипЦен")


а вот с этим соглашусь, но с оговорками:
если берем модуль Формы:
что на сервере, что на клиенте на управляемых формах табличная часть через точку возвращается тип = ДанныеФормыКоллекция, и тогда нет метода ВыгрузитьКолонку()...


если же берем модуль объекта
то обращение не через точку (т.е. изначально было на форме написано), а просто к табличной части и тогда работает метод ВыгрузитьКолонку:
Цитата
Колонка = ТипЦен.ВыгрузитьКолонку()





fly @ Сегодня, 10:05 * ,

Автор: Макс1С 11.12.19, 11:14

Цитата(fly @ 11.12.19, 10:10) *
что на сервере, что на клиенте на управляемых формах табличная часть через точку возвращается тип = ДанныеФормыКоллекция, и тогда нет метода ВыгрузитьКолонку()...

Спасибо, действительно. Это затмение нашло какое-то, изначально написал Выгрузить() в ТЗ и ВыгрузитьКолонку(), а потом с какого-то перепугу поправил свой пост

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua