7.7 Обновление таблиц на форме

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Сергей123, 30 июл 2013.

  1. TopicStarter Overlay
    Сергей123
    Offline

    Сергей123 Опытный в 1С

    Регистрация:
    11 июл 2013
    Сообщения:
    69
    Симпатии:
    0
    Баллы:
    26
    Код:
    	 
    Списоктоваров = СоздатьОбъект("СписокЗначений");
    ВыбратьСтроки();
    Пока ПолучитьСтроку() = 1 Цикл
    Списоктоваров.ДобавитьЗначение(Номенклатура);
    КонецЦикла;
    Группы1= СоздатьОбъект("ТаблицаЗначений");
    СписокТоваров.Выгрузить(Группы1);
    Запрос = СоздатьОбъект("Запрос");
    ВыбНачПериода = ДатаДок;
    //ВыбКонПериода = ТекущаяДата();
    ВыбКонПериода = ДатаДок;
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Номенклатура = Регистр.ОстаткиТМЦ.Номенклатура;
    |Количество = Регистр.ОстаткиТМЦ.Количество;
    |Функция КоличествоКонОст = КонОст(Количество);
    |Функция КоличествоНачОст = НачОст(Количество);
    |Группировка Номенклатура без групп;
    |Условие(Количество < 0);
    |Условие(Номенклатура в Группы);
    |"//}}ЗАПРОС
    ;
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат;
    КонецЕсли;
    Пока Запрос.Группировка(1) = 1 Цикл
    Если Запрос.Номенклатура.ПринадлежитГруппе(Группы1) = 0 Тогда
    НоваяСтрока();
    Номенклатура = Запрос.Номенклатура;
    КолУчет  = Запрос.КоличествоНачОст;
    КолУчет1 = Запрос.КоличествоКонОст;
    
    стр = 0;
    ббб = 0;
    Группы1.ВыбратьСтроки();
    Пока Группы1.ПолучитьСтроку() = 1 Цикл
    стр = стр + 1;
    Если Группы1.НайтиЗначение(Номенклатура,ббб,"_1") = 1 Тогда
    Сообщить(ббб);
    Группы1.УдалитьСтроку(ббб);
    Форма.Обновить();
    КонецЕсли;
    КонецЦикла;
    Откл = КолФакт-КолУчет1;
    Цена		 = ЦенаТов(Запрос.Номенклатура);
    Цена1		 = ЦенаТов1(Запрос.Номенклатура);
    СуммаУ	   = Цена * КолУчет1;
    СуммаФ	   = Цена * КолФакт;
    КонецЕсли;
    КонецЦикла;
    АктивизироватьСтроку(КоличествоСтрок());
    КонецПроцедуры
    
    Доброго всем дня. Прошу у всех помощи. Есть проблема. Пришлось переделывать одну внешнюю обработку, на форме которой стоит таблица, в нее загружается результат запроса. суть проблемы: добавляю кнопку обновить, при нажатии которой должны удалятся некоторые строки и добавляться новые. Как показать на форме в таблице результат? В оперируемой ТЗ все удаляется, но в таблицу формы изменения не попадают
  2. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    примерно так:

    Код:
    Табл.Очистить(); //Табл - таблица на форме
    
    Табл.НоваяКолонка("Номенклатура","Строка",,,"Номенкл",5,,);
    Табл.НоваяКолонка("Сумма","Строка",,,"Сумма",2,,);
    Табл.НоваяКолонка("Элемент");
    Табл.ВидимостьКолонки("Элемент",0);
    Табл.УдалитьСтроки();
    
    Табл.НоваяСтрока();
    Табл.Номенклатура = "Какая-то номенкл";
    Табл.Сумма = "Какая-то сумма";
    строки в цикле можно добавлять...
  3. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    1) Очищать таблицу (т.е. удалять структуру не обязательно). Достаточно удалять строки
    2) В цикле заполнять таблицу формы не кашерно - тормоза 100%. Особенно если не 2-3 строчки. Лучше выгружать результаты запроса во временную таблицу, а ее уже потом выгружать в таблицу формы (правда колонки придется каждый раз настраивать, но это уже мелочи)
  4. TopicStarter Overlay
    Сергей123
    Offline

    Сергей123 Опытный в 1С

    Регистрация:
    11 июл 2013
    Сообщения:
    69
    Симпатии:
    0
    Баллы:
    26
    разгадка лежала на поверхности! спасибо. все получилось

Поделиться этой страницей