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

Условный оператор и колонка тз

Автор Vetall, 21 июн 2020, 14:12

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

Vetall

Подскажите плиз как можно значение колонки в ТЗ проверить на определенное значение например есть колонка ТЗ Пол значения "Мужчина", "Женщина" Если мужчена тогда то-то иначе то-то Пример:
Заполняет должность только бухгалтер, значит не видит ФИО.Пол колонку или значение из нее не пойму опыта мало
ФИО = Новый ТаблицаЗначений;
ФИО.Колонки.Добавить("Имя");
ФИО.Колонки.Добавить("Отчество");
ФИО.Колонки.Добавить("ДатаРождения");
ФИО.Колонки.Добавить("Зарплата");
ФИО.Колонки.Добавить("Пол");
ФИО.Колонки.Добавить("Благонадежность");
ФИО.Колонки.Добавить("Должность");
ФИО.Колонки.Вставить(2, "Фамилия");
ФИО.Колонки.Добавить("ФИО");

НоваяСтрока = ФИО.Добавить();
НоваяСтрока.Имя = "Сергей";
НоваяСтрока.Фамилия = "Петров";
НоваяСтрока.Отчество = "Сергеевич";
НоваяСтрока.ДатаРождения = '19750715';
НоваяСтрока.Зарплата = 5000;
НоваяСтрока.ФИО = НоваяСтрока.Имя + НоваяСтрока.Фамилия + НоваяСтрока.Отчество + Формат(НоваяСтрока.ДатаРождения,"ДЛФ = ДД");

НоваяСтрока = ФИО.Добавить();
НоваяСтрока.Имя = "Алена";
НоваяСтрока.Фамилия = "Сухарева";
НоваяСтрока.Отчество = "Сергеевна";
НоваяСтрока.ДатаРождения = '19770315';
НоваяСтрока.Зарплата = 7000;
НоваяСтрока.ФИО = НоваяСтрока.Имя + НоваяСтрока.Фамилия + НоваяСтрока.Отчество +             Формат(НоваяСтрока.ДатаРождения,"ДЛФ = ДД");

        МассивДляЗагрузки = Новый Массив;
        МассивДляЗагрузки.Добавить("Мужчина");
        МассивДляЗагрузки.Добавить("Женщина");

        Для каждого Стр Из ФИО Цикл
ФИО.ЗагрузитьКолонку(МассивДляЗагрузки, "Пол");
КонецЦикла;

        Программист1С = "Программист1С";
Бухгалтер = "Бухгалтер";

Если ФИО.Пол = "Мужчина" Тогда
ФИО.ЗаполнитьЗначения(Программист1С, "Должность");
Иначе
ФИО.ЗаполнитьЗначения(Бухгалтер, "Должность");
КонецЕсли;




Vetall

ЗаполнитьЗначение наверное не подойдет, но не в этом суть, как мне проверить условным опреатором значение в строке определенной колонки пол допустим для каких то действий, Если пол муж то, иначе то-то. пишет поле объекта не обнаружено(Пол)

alexandr_ll

Цитата: Vetall от 21 июн 2020, 14:31
ЗаполнитьЗначение наверное не подойдет, но не в этом суть, как мне проверить условным опреатором значение в строке определенной колонки пол допустим для каких то действий, Если пол муж то, иначе то-то. пишет поле объекта не обнаружено(Пол)
Проверка должна быть в цикле, когда есть ссылка на строку таблицы значений.

LexaK

там где добавляете строчки в ТЗ, со всеми даннми добавьте и пол, как правило у вас во всех будущих таблицах при заполнении  Сотрудник или Физическое лицо уже имеет пол

НоваяСтрока = ФИО.Добавить();
    НоваяСтрока.Имя = "Сергей";
    НоваяСтрока.Фамилия = "Петров";
    НоваяСтрока.Отчество = "Сергеевич";
    НоваяСтрока.ДатаРождения = '19750715';
    НоваяСтрока.Пол = "Мужчина";
    НоваяСтрока.Зарплата = 5000;
    НоваяСтрока.ФИО = НоваяСтрока.Имя + НоваяСтрока.Фамилия + НоваяСтрока.Отчество + Формат(НоваяСтрока.ДатаРождения,"ДЛФ = ДД");

    НоваяСтрока = ФИО.Добавить();
    НоваяСтрока.Имя = "Алена";
    НоваяСтрока.Фамилия = "Сухарева";
    НоваяСтрока.Отчество = "Сергеевна";
    НоваяСтрока.ДатаРождения = '19770315';
    НоваяСтрока.Пол = "Женщина";
    НоваяСтрока.Зарплата = 7000;
    НоваяСтрока.ФИО = НоваяСтрока.Имя + НоваяСтрока.Фамилия + НоваяСтрока.Отчество +             Формат(НоваяСтрока.ДатаРождения,"ДЛФ = ДД");

 


и уже при обработке ТЗ, проверять какой пол и что-то дозаполнять, примерно так


     Для каждого Стр Из ФИО Цикл
        Если Стр.Пол = "Мужчина" Тогда
           Стр.Должность = "Программист1С";
        Иначе
           Стр.Должность = "Бухгалтер";
       КонецЕсли;
       
        //или так,
        //Стр.Должность = ?(Стр.Пол = "Мужчина","Программист1С","Бухгалтер");

    КонецЦикла;


ВСЕ мужчины будут Программистами, а ВСЕ женщины бухгалтерами
если помогло нажмите: Спасибо!

Vetall

Цитата: alexandr_ll от 22 июн 2020, 05:21
Цитата: Vetall от 21 июн 2020, 14:31
ЗаполнитьЗначение наверное не подойдет, но не в этом суть, как мне проверить условным опреатором значение в строке определенной колонки пол допустим для каких то действий, Если пол муж то, иначе то-то. пишет поле объекта не обнаружено(Пол)
Проверка должна быть в цикле, когда есть ссылка на строку таблицы значений.
Да про цикл догадался, но все равно спасибо!
Добавлено: 23 июн 2020, 11:41


Цитата: LexaK от 22 июн 2020, 10:32
там где добавляете строчки в ТЗ, со всеми даннми добавьте и пол, как правило у вас во всех будущих таблицах при заполнении  Сотрудник или Физическое лицо уже имеет пол

НоваяСтрока = ФИО.Добавить();
    НоваяСтрока.Имя = "Сергей";
    НоваяСтрока.Фамилия = "Петров";
    НоваяСтрока.Отчество = "Сергеевич";
    НоваяСтрока.ДатаРождения = '19750715';
    НоваяСтрока.Пол = "Мужчина";
    НоваяСтрока.Зарплата = 5000;
    НоваяСтрока.ФИО = НоваяСтрока.Имя + НоваяСтрока.Фамилия + НоваяСтрока.Отчество + Формат(НоваяСтрока.ДатаРождения,"ДЛФ = ДД");

    НоваяСтрока = ФИО.Добавить();
    НоваяСтрока.Имя = "Алена";
    НоваяСтрока.Фамилия = "Сухарева";
    НоваяСтрока.Отчество = "Сергеевна";
    НоваяСтрока.ДатаРождения = '19770315';
    НоваяСтрока.Пол = "Женщина";
    НоваяСтрока.Зарплата = 7000;
    НоваяСтрока.ФИО = НоваяСтрока.Имя + НоваяСтрока.Фамилия + НоваяСтрока.Отчество +             Формат(НоваяСтрока.ДатаРождения,"ДЛФ = ДД");

 


и уже при обработке ТЗ, проверять какой пол и что-то дозаполнять, примерно так


     Для каждого Стр Из ФИО Цикл
        Если Стр.Пол = "Мужчина" Тогда
           Стр.Должность = "Программист1С";
        Иначе
           Стр.Должность = "Бухгалтер";
       КонецЕсли;
       
        //или так,
        //Стр.Должность = ?(Стр.Пол = "Мужчина","Программист1С","Бухгалтер");

    КонецЦикла;


ВСЕ мужчины будут Программистами, а ВСЕ женщины бухгалтерами
Получилось, в цикле я обращался к таблице фио напрямую, а надо было к переменной стр затупил, спасибо!

Теги:

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

Рейтинг@Mail.ru

Поиск