Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
05 фев 2026, 02:33

Задание 6 и 7

Автор Дмитрий Корнилов, Вчера в 13:50

0 Пользователей и 3 гостей просматривают эту тему.

Дмитрий Корнилов

Здравствуйте, помогите пожалуйста с заданиями 6 и 7, есть сомнения что неправильно понял задание



Задание 6
Снимок экрана (8852).png
Снимок экрана (8853).png
Снимок экрана 2026-02-04 134640.png

&НаКлиенте
Процедура СвернутьТаблицу(Команда)
СвернутьТаблицуНаСервере()
КонецПроцедуры

&НаСервере
Процедура СвернутьТаблицуНаСервере()

 ТЗ = Таб.Выгрузить();
   
    // Группируем по: Номенклатура, Цена
    // Суммируем по: Количество, Сумма
    ТЗ.Свернуть("Номенклатура, Цена", "Количество, Сумма");
   
    // Загружаем обратно в реквизит формы
    Таб.Загрузить(ТЗ);

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



Задание 7
Снимок экрана (8856).png
Снимок экрана (8860).png
Снимок экрана 2026-02-04 134853.png
&НаКлиенте
Процедура КонтрагентРеквизитПриИзменении(Элемент)
   
    // Вызов серверной логики
    ОбработатьДанныеНаСервере();
   
КонецПроцедуры

&НаСервере
Процедура ОбработатьДанныеНаСервере()
   
    // 1. Очищаем ТАБ1 (куда загружаем результат), если контрагент не найден или не выбран
    ТАБ1.Очистить();
   
    // Проверяем, заполнено ли поле Контрагент на форме
    Если ЗначениеЗаполнено(Контрагент) Тогда
       
        // 2. Выгружаем данные из исходной таблицы ТАБ в объект ТаблицаЗначений
        ТЗ_Источник = ТАБ.Выгрузить();
       
        // 3. Ищем строки по выбранному контрагенту
        ПараметрыОтбора = Новый Структура("Контрагент",Контрагент);
        СтрокиФильтра = ТЗ_Источник.НайтиСтроки(ПараметрыОтбора);
       
        // Если такие строки есть, обрабатываем их
        Если СтрокиФильтра.Количество() > 0 Тогда
           
            // 4. Создаем копию таблицы только с отфильтрованными строками
            ТЗ_Результат = ТЗ_Источник.Скопировать(СтрокиФильтра);
           
            // 5. Сворачиваем по Номенклатуре, суммируя Количество
            // Важно: в ТЗ_Результат сейчас есть колонка "Контрагент",
            // при сворачивании по "Номенклатура" лишние колонки удалятся сами
            ТЗ_Результат.Свернуть("Номенклатура", "Количество");
           
            // 6. Загружаем итоговые данные в ТАБ1
            ТАБ1.Загрузить(ТЗ_Результат);
           
        КонецЕсли;
       
    КонецЕсли;
   
КонецПроцедуры

antoneus

Да говорю же, правильно всё.
Чтобы разместить разные поля в одной колонке, надо в таблицу на форме добавить группу колонок, втащить туда нужные колонки, и выбрать группировку "в ячейке".

Дмитрий Корнилов

antoneus, Вы можете это сделать, если для вас это не сложно, и вы говорили что не проверяли выгрузку

antoneus

6 и 7 я проверял, я не проверял конфигурацию.

Не-не, давай сам, руками.

Дмитрий Корнилов

antoneus, Хотя бы так, большое вам спасибо

Дмитрий Корнилов

antoneus, Я сделал так а дальше что должно быть

Дмитрий Корнилов

antoneus, Я проверил просто в левом нижнем углу красный текст

Дмитрий Корнилов

antoneus,

Дмитрий Корнилов

antoneus, Также в 7 заданий как это понять Сворачивать и суммируя номенклатура, у меня что происходить просто данные из первой таблицы перетекают во вторую, а также в 6 заданий, как понять возможность свертки

Дмитрий Корнилов

antoneus, Заранее буду благодарен

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск