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

Заполнение Таблицы Значений Подскажите

Автор OnePunch-Man, 24 мар 2023, 09:38

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

OnePunch-Man

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

Создал на форме 3 ТЗ и 3 команды "ЗаполнитьТЗ" первые 2 таблицы заполнил програмно в ручную, а 3ю нужно заполнить данными из первых 2х.

&НаКлиенте
Процедура Команда1(Команда)

Команда1НаСервере();

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

&НаСервере
Процедура Команда1НаСервере()

НоваяСтрока = СотрудникиИИхОтдел.Добавить();
НоваяСтрока.Отдел = "Бухгалтерия";
НоваяСтрока.ФИО = "Казанцева";

НоваяСтрока = СотрудникиИИхОтдел.Добавить();
НоваяСтрока.Отдел = "Бухгалтерия";
НоваяСтрока.ФИО = "Петрова";

НоваяСтрока = СотрудникиИИхОтдел.Добавить();
НоваяСтрока.Отдел = "Кадры";
НоваяСтрока.ФИО = "Исмаилова";

НоваяСтрока = СотрудникиИИхОтдел.Добавить();
НоваяСтрока.Отдел = "Бухгалтерия";
НоваяСтрока.ФИО = "Жуков";

НоваяСтрока = СотрудникиИИхОтдел.Добавить();
НоваяСтрока.Отдел = "Маркетинг";
НоваяСтрока.ФИО = "Пермяков";

НоваяСтрока = СотрудникиИИхОтдел.Добавить();
НоваяСтрока.Отдел = "Маркетинг";
НоваяСтрока.ФИО = "Сидорова";

НоваяСтрока = СотрудникиИИхОтдел.Добавить();
НоваяСтрока.Отдел = "Маркетинг";
НоваяСтрока.ФИО = "Глушко";

НоваяСтрока = СотрудникиИИхОтдел.Добавить();
НоваяСтрока.Отдел = "Маркетинг";
НоваяСтрока.ФИО = "Кириллов";

НоваяСтрока = СотрудникиИИхОтдел.Добавить();
НоваяСтрока.Отдел = "Маркетинг";
НоваяСтрока.ФИО = "Мерзлякова";

НоваяСтрока = СотрудникиИИхОтдел.Добавить();
НоваяСтрока.Отдел = "Маркетинг";
НоваяСтрока.ФИО = "Утина";

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

&НаКлиенте
Процедура Команда2(Команда)

Команда2НаСервере();

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

&НаСервере
Процедура Команда2НаСервере()


НоваяСтрока = СотрудникиИКоличествоДетей.Добавить();
НоваяСтрока.ФИО = "Казанцева";
НоваяСтрока.КоличествоДетей = "2";     

НоваяСтрока = СотрудникиИКоличествоДетей.Добавить();
НоваяСтрока.ФИО = "Петрова";
НоваяСтрока.КоличествоДетей = "2";

НоваяСтрока = СотрудникиИКоличествоДетей.Добавить();
НоваяСтрока.ФИО = "Исмаилова";
НоваяСтрока.КоличествоДетей = "1";

НоваяСтрока = СотрудникиИКоличествоДетей.Добавить();
НоваяСтрока.ФИО = "Жуков";
НоваяСтрока.КоличествоДетей = "3";

НоваяСтрока = СотрудникиИКоличествоДетей.Добавить();
НоваяСтрока.ФИО = "Пермяков";
НоваяСтрока.КоличествоДетей = "0";

НоваяСтрока = СотрудникиИКоличествоДетей.Добавить();
НоваяСтрока.ФИО = "Сидорова";
НоваяСтрока.КоличествоДетей = "2";

НоваяСтрока = СотрудникиИКоличествоДетей.Добавить();
НоваяСтрока.ФИО = "Глушко";
НоваяСтрока.КоличествоДетей = "1";

НоваяСтрока = СотрудникиИКоличествоДетей.Добавить();
НоваяСтрока.ФИО = "Кириллов";
НоваяСтрока.КоличествоДетей = "2";

НоваяСтрока = СотрудникиИКоличествоДетей.Добавить();
НоваяСтрока.ФИО = "Мерзлякова";
НоваяСтрока.КоличествоДетей = "1";

НоваяСтрока = СотрудникиИКоличествоДетей.Добавить();
НоваяСтрока.ФИО = "Утина";
НоваяСтрока.КоличествоДетей = "0";



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

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

&НаСервере
Процедура Команда3НаСервере()



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


1я таблица СотрудникиИИхОтдел;
2я таблица СотрудникиИКоличествоДетей;
3я Таблица Подарки с колонками "Отдел" и "КоличествоПодарков", как программно заполнить эту таблицу чтобы по каждому отделу просуммировалось кол-во подарков по кол-ву детей у сотрудников этого отдела.

тоесть должно получиться Бухгалтерия 7 подарков, кадры 1 подарок, Маркетинг, 6 подарков.

Пробовал через функцию Скопировать(), но почемуто выдает ошибку.

Afinogen

Цикл

Для Каждого  ИЗи метод "НайтиСтроки"
для начала разберитесь как они работают

Kvark5d

OnePunch-Man,
Для каждого СтрокаСотрудникиИИхОтдел ИЗ СотрудникиИИхОтдел Цикл
    Поиск = СотрудникиИКоличествоДетей.НайтиСтроки(Новый Структура("ФИО",СтрокаСотрудникиИИхОтдел.ФИО);
       Если Поиск.Количество()<>0 И Поиск[0].КоличествоДетей<>0 Тогда
        НоваяСтрока=Подарки.Добавить();
        НоваяСтрока.Отдел = СтрокаСотрудникиИИхОтдел.Отдел;
        НоваяСтрока.КоличествоПодарков =Поиск[0].КоличествоДетей
    КонецЕсли;
КонецЦикла
Подарки.Свернуть("Отдел","КоличествоПодарков");

Теги:

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

Рейтинг@Mail.ru

Поиск