Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как выгрузить запрос в 1 колонку раннее созданной ТЗ
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
Sharzem
1 С 7.7. релиз 027 Конфигурация ТИС.

Имеется на форме обработки конструкция ТЗ:
Процедура При открытии()
//.... трам-парам-пам-пам

    ТЗ.НоваяКолонка("FormEx_ПланРаскраски");
    ТЗ.НоваяКолонка("КодТовара","Строка",9,,"КодТовара",6,,);
    ТЗ.НоваяКолонка("ШтрихТовара","Строка",13,,"ШК",6,,);
    ТЗ.НоваяКолонка("Товар",,,,,50,,);
    ТЗ.НоваяКолонка("ТоварКлиента",,,,,20,,);
    ТЗ.НоваяКолонка("Остаток","Число",10,2,"Остаток",5,,);
    ТЗ.НоваяКолонка("Анализ","Число",10,0,"Анализ",5,,);
    ТЗ.НоваяКолонка("Количество","Число",10,2,"Количество",10,,);
    ТЗ.НоваяКолонка("ЦенаТовара","Число",10,3,"ЦенаТовара",10,,);
    ТЗ.НоваяКолонка("Клиент",,,,,15,,);
    ТЗ.НоваяКолонка("ЦенаНаша","Число",10,2,"ЦенаНаша",10,,);
    ТЗ.ВидимостьКолонки("FormEx_ПланРаскраски",0,);

//...трам-парам-пам-пам


Имеется допустим небольшой запрос:
Процедура ЗаполнитьВсемиТоварами()
    Перем Запрос, ТекстЗапроса;
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(ЗаполнитьВсемиТоварами)
    |Обрабатывать НеПомеченныеНаУдаление;
    |Товар = Справочник.Товары.ТекущийЭлемент;
    |Группировка Товар без групп;
    |"//}}ЗАПРОС
   ;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;
    ТоварнаяТз = СоздатьОбъект("ТаблицаЗначений");
    Запрос.Выгрузить(ТоварнаяТз);
    ТЗ.Заполнить(ТоварнаяТз,,,"Товар");
КонецПроцедуры

Так вот, проблема с ТЗ.Заполнить(ТоварнаяТз,,,"Товар"), где туплю непонятно... Как не меняю постоянно вываливается:
Ошибка при выполнении команды;
ТЗ.Заполнить(ТоварнаяТз,,,"Товар");
{Обработка.Прайсы.Форма.Модуль(730)}: Номер за пределами значения!

Нужно следующее: что-б Справочник.Товары "перелез" в созданную ПриОткрытии() ТЗ(колонка "Товар") именно через запрос.
Конечно данную проблему можно решить с помощь Пока трам-пам Цикл, но заполнение ТЗ будет происходить на протяжении нескольких минут, нужна оптимизация.
Коллеги, ткните что нужно сделать ? P/S. Купить Синтаксис-Помощник не предлагать.
XBrut
Посмотрите в отладчике, сколько строчек в ТЗ перед "Заполнить". Если тз.КоличествоСтрок()=0 Тогда ошибка и будет.
Може запрос пустой.
igmig65
ТЗ пустая, колонки есть, а строк нет
Sharzem
Всем, спасибо ! Наверное спать нужно больше. ТЗ у меня действительно пустая !

Буду использовать цикл, раскраску нужно все-равно заполнять. Проблемы с оптимизацией буду решать при заполнении ТЗ с помощью:

 Форма.ТЗ.Видимость(0);//ВОТ ЭТОЙ СТРОЧКИ 
Пока .... Цикл
       трам-пам-пам;
КонецЦикла;
Форма.ТЗ.Видимость(1); //И ВОТ ЭТОЙ


Ускорение заполнения ТЗ будет 100 %
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.