• Авторизация


Работа с таблицой значений в 1С:Предприятие 31-10-2014 15:30 к комментариям - к полной версии - понравилось!


Настроение сейчас - И.С. Бах - Сицилиана

Как создать таблицу значений и заполнить ее поля?

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

    // Добавить новую строку и задать значения в колонках таблицы. 
    НоваяСтрока = ТаблицаЗначений.Добавить(); 
    НоваяСтрока.Фамилия = "Иванов"; 
    НоваяСтрока.Возраст = 23; 

    // Добавить новую строку и задать значения в колонках таблицы. 
    НоваяСтрока = ТаблицаЗначений.Добавить(); 
    НоваяСтрока["Фамилия"] = "Иванов"; 
    НоваяСтрока["Возраст"] = 23;           
            

наверх


Как найти значение в таблице значений?

    НайденнаяСтрока = ТаблицаЗначений.Найти(ИскомоеЗначение); 

    НайденнаяСтрока = ТаблицаЗначений.Найти(ИскомоеЗначение, "Поставщик, Покупатель"); 

    // Сформировать структуру отбора. 
    СтруктураПоиска = Структура("Сотрудник", ИскомоеЗначение); 

    // Найти строки. 
    МассивНайденныхСтрок = ТаблицаЗначений.НайтиСтроки(СтруктураПоиска);           
            

наверх


Как перебрать строки таблицы значений?

    Для Каждого ТекущаяСтрока Из ТаблицаСотрудников Цикл 
        Сообщить(ТекущаяСтрока.Сотрудник); 
    КонецЦикла; 

    СтаршийИндекс = ТаблицаСотрудников.Количество() - 1; 
    Для Сч = 0 по СтаршийИндекс Цикл 
        Сообщить(СписокСотрудников[Сч].Сотрудник); 
    КонецЦикла;          
            

наверх


Как удалить строки (колонки) таблицы значений?

    ТаблицаЗначений.Удалить(УдаляемаяСтрока); 

    ТаблицаЗначений.Удалить(0); 

    ТаблицаЗначений.Колонки.Удалить(УдаляемаяКолонка); 

    ТаблицаЗначений.Колонки.Удалить(0); 

    СтаршийИндексКолонок = ТаблицаЗначений.Колонки.Количество() - 1; 
    Индекс = ТаблицаЗначений.Количество() - 1; 
    Пока Индекс > = 0 Цикл 
        Для Сч = 0 По СтаршийИндексКолонок Цикл 
            Если ТипЗнч(ТаблицаЗначений[Индекс][Сч]) = Тип("Число") Тогда 
                ТаблицаЗначений.Удалить(Индекс); 
                Прервать; 
            КонецЕсли; 
        КонецЦикла; 
        
        Индекс = Индекс - 1; 

    КонецЦикла;
            

наверх


Как заполнить таблицу значений, если имена колонок содержатся в переменных?

    НоваяСтрока = ТаблицаЗначений.Добавить(); 
    НоваяСтрока[ИмяКолонки] = Значение;           
            

наверх


Как заполнить всю колонку таблицы значений нужным значением?

    ТаблицаЗначений.ЗаполнитьЗначения(Ложь, "ФлагФискальногоУчета");          
            

наверх


Как таблицу значений "ТаблицаПолучатель" заполнить данными таблицы значений "ИсходнаяТаблица"?

    ТаблицаПолучатель = ТаблицаИсходная.Скопировать(); 

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

    ОдноименныеКолонки = Новый Массив(); 
    Для Каждого Колонка Из ИсходнаяТаблица.Колонки Цикл 
        СовпадающаяКолонка = ТаблицаПолучатель.Колонки.Найти(Колонка.Имя); 
        Если СовпадающаяКолонка <> Неопределено Тогда 

            // Получить свойства колонки. 
            Индекс = ТаблицаПолучатель.Колонки.Индекс(СовпадающаяКолонка); 
            Имя = Колонка.Имя; 
            ТипЗначения = Колонка.ТипЗначения; 
            Заголовок = Колонка.Заголовок; 
            Ширина = Колонка.Ширина; 

            // Заменить колонки в таблице-получаетеле. 
            ТаблицаПолучатель.Колонки.Удалить(Индекс); 
            ТаблицаПолучатель.Колонки.Вставить(Индекс, Имя, ТипЗначения, Заголовок, Ширина); 

            // Добавить очередное имя совпадающих колонок в массив. 
            ОдноименныеКолонки.Добавить(Колонка.Имя); 
        КонецЕсли; 
    КонецЦикла; 

    // Цикл перебора строк исходной таблицы. 
    Для Каждого СтрокаИсходнойТаблицы Из ИсходнаяТаблица Цикл 

        // Добавить новую строку в таблицу-получатель. 
        НоваяСтрока = ТаблицаПолучатель.Добавить(); 

        // Заполнить значения в совпадающих ячейках. 
        Для Каждого ИмяКолонки Из ОдноименныеКолонки Цикл 
            НоваяСтрока[ИмяКолонки] = СтрокаИсходнойТаблицы[ИмяКолонки]; 
        КонецЦикла; 

    КонецЦикла;           
            

наверх


Как добавить колонки к таблице значений "ТаблицаЗначений" с ограничениями по типу?

    // Добавить колонку без ограничений по типу. 
    ТаблицаЗначений.Колонки.Добавить("Объект"); 

    // Ограничения по типам данных колонки: 
    // Только элементы справочника "Контрагенты". 
    ТаблицаЗначений.Колонки.Добавить("Контрагент", Новый ОписаниеТипов("СправочникСсылка.Контрагенты")); 

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

    // Расширение уже использованного ранее описания типов. 
    КвалификаторыЧисла = Новый КвалификаторыЧисла(10, 2, ДопустимыйЗнак.Неотрицательный); 
    КвалификаторыДаты = Новый КвалификаторыДаты(ЧастиДаты.Дата); 
    РасширенныеДопустимыеТипы = Новый ОписаниеТипов(ДопустимыеТипы, "Число, Дата", , КвалификаторыЧисла, , КвалификаторыДаты); 
    ТаблицаЗначений.Колонки.Добавить("Примечание", РасширенныеДопустимыеТипы);           
            

наверх


Как изменить тип значения колонки таблицы значений, полученной выгрузкой из запроса?

    // Создать пустые ссылки. 
    ПустоеОприходование = Документы.ОприходованиеТоваров.ПустаяСсылка(); 
    ПустойВозврат = Документы.ВозвратТоваровОтПокупателя.ПустаяСсылка(); 

    // Выполнить запрос. 
    Запрос = Новый Запрос; 
    Запрос.Текст = "ВЫБРАТЬ 
    |	Ссылка 
    |ИЗ 
    |	Документ.ПоступлениеТоваровУслуг 
    | 
    |ОБЪЕДИНИТЬ ВСЕ 
    | 
    |ВЫБРАТЬ ПЕРВЫЕ 0 
    |	&ПустойДокументОприходование 
    | 
    |ОБЪЕДИНИТЬ ВСЕ 
    | 
    |ВЫБРАТЬ ПЕРВЫЕ 0 
    |	&ПустойДокументВозврат 
    |"; 

    Запрос.УстановитьПараметр("ПустойДокументОприходование", ПустоеОприходование); 
    Запрос.УстановитьПараметр("ПустойДокументВозврат", ПустойВозврат); 

    // Выгрузить в таблицу значений. 
    ТаблицаСсылок = Запрос.Выполнить().Выгрузить();           
            

вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник Работа с таблицой значений в 1С:Предприятие | chooser - тот, кто ищет | Лента друзей chooser / Полная версия Добавить в друзья Страницы: раньше»