Имя: Пароль:
1C
1С v8
Табличный документ - загрузить табличное поле
0 Маленький Вопросик
 
30.10.18
18:11
Товарищи как в табличный документ - загрузить табличное поле с формы?

спасибо!
1 Один С
 
30.10.18
18:30
Функция МакетВТаблицуЗначений(Макет, _ТЗ=Неопределено, флДобавлятьКолонки=истина) Экспорт
    Перем ТЗ;
    
    Если _ТЗ=Неопределено Тогда
        ТЗ=Новый ТаблицаЗначений();
        флЗаполняем=ложь;
    Иначе
        ТЗ=_ТЗ;
        флЗаполняем=истина;
    КонецЕсли;
    
    //Считываем колонки
    КоличествоКолонок=0;
    ИменаКолонок=Новый Массив();
    Кол=1;
    Пока истина Цикл
        Адрес="R1C"+Формат(Кол,"ЧГ=");
        ИмяКол=Макет.Область(Адрес).Текст;
        Если ПустаяСтрока(ИмяКол) Тогда
            Прервать;
        КонецЕсли;
        КоличествоКолонок=КоличествоКолонок+1;
        Если НЕ флЗаполняем или (флЗаполняем И флДобавлятьКолонки) И ТЗ.Колонки.Найти(ИмяКол)=Неопределено Тогда
            ТЗ.Колонки.Добавить(ИмяКол);
        КонецЕсли;
        ИменаКолонок.Добавить(ИмяКол);
        Кол=Кол+1;
    КонецЦикла;
    
    //Считываем строки
    Стр=2; Кол=1;
    Пока истина Цикл
        Вставлено=ложь; Первая=истина;
        Для Инд=1 По КоличествоКолонок Цикл
            Адрес="R"+Формат(Стр,"ЧГ=")+"C"+Формат(Инд,"ЧГ=");
            Зн=СокрЛП(Макет.Область(Адрес).Текст);
            Если ПустаяСтрока(Зн) Тогда
                Продолжить;
            КонецЕсли;
            Если Первая Тогда
                ТСтр=ТЗ.Добавить();
                Первая=ложь;
                Вставлено=истина;
            КонецЕсли;
            ИмяКолонки=ИменаКолонок[Инд-1];
            Если ТЗ.Колонки.Найти(ИмяКолонки)<>Неопределено Тогда
                Если флЗаполняем Тогда
                    //Проверяем тип - число, строка, булево
                    ОписаниеТипаКолонки=ТЗ.Колонки[ИмяКолонки].ТипЗначения;
                    Если ОписаниеТипаКолонки.СодержитТип(Тип("Число")) Тогда
                        РезЗн=Число(Зн);
                    ИначеЕсли ОписаниеТипаКолонки.СодержитТип(Тип("Строка")) Тогда
                        РезЗн=Строка(Зн);
                    ИначеЕсли ОписаниеТипаКолонки.СодержитТип(Тип("Булево")) Тогда
                        РезЗн=Булево(Зн);
                    ИначеЕсли ОписаниеТипаКолонки.СодержитТип(Тип("Дата")) Тогда
                        РезЗн=Дата(Зн);
                    Иначе
                        РезЗн=Зн;
                    КонецЕсли;
                Иначе
                    РезЗн=Зн;
                КонецЕсли;
                ТСтр[ИмяКолонки]=РезЗн;
            КонецЕсли;
        КонецЦикла;
        Если Не вставлено Тогда
            Прервать;
        КонецЕсли;
        Стр=Стр+1;
        Кол=1;
    КонецЦикла;
    
    Возврат ТЗ;
    
КонецФункции
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.