Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Сгруппировать и сравнить в ТЧ записи по определенному отбору
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
Constantus
Приветствую, Форумчане!
1с8.3.12, УФ, самопис

В ТЧ есть два реквизита "ТипДанных" и "Оформитель" (все перечисления)

Покрытие - Офис
Покрытие - Офис
Покрытие - Производство
Покрытие - Производство
Ерунда1 - Игнор
Ерунда1 - Игнор

Требуется проанализировать только по парам "Покрытие - Офис" и "Покрытие - Производство"
Т.е. проверить наличие этих пар в ТЧ, причем главным условием должно быть наличие только одной из этих пар: если есть обе, то это очень плохо и больно...

Проверка идет перед записью в модуле объекта.

Перепробовал несколько мыслей:

СтруктураДляПоиска.Вставить("ТипДанных, Оформитель", Перечисления.ТипыДанныхОформления.Покрытие, Перечисления.СпособыИзготовления.Производство);
МассивСтрокНаПроизводстве = Оформление.НайтиСтроки(структураДляПоиска);

там нужно использовать только один параметр для поиска

ПроверкаПокрытия.Свернуть("ТипДанных", "Оформитель");

требует число в суммируемом поле

Использовать запрос не удобно, т.к. проверка может идти для нового документа

Посоветуйте как правильно свернуть, сгруппировать или есчё что-нить, чтобы получить мечту жизни?

TohaMonster
Опять 90% Вами выполнено. Нужен еще шаг. "Свернуть" отбрасываем. "НайтиСтроки" - самое то.

Пара1ДляПоиска.Вставить("ТипДанных, Оформитель", Перечисления.ТипыДанныхОформления.Покрытие, Перечисления.СпособыИзготовления.Производство);
МассивСтрокПара1 = Оформление.НайтиСтроки(Пара1ДляПоиска);

Пара2ДляПоиска.Вставить("ТипДанных, Оформитель", Перечисления.ТипыДанныхОформления.Покрытие, Перечисления.СпособыИзготовления.Офис);
МассивСтрокПара2 = Оформление.НайтиСтроки(Пара2ДляПоиска);

Если МассивСтрокПара1.Количество()>0 И МассивСтрокПара2.Количество()>0 Тогда
  Сообщить("Смотри чо творишь, Пользователь!");
  Отказ = ИСТИНА;
КонецЕсли;


Но, как вариант, эту проверку делать при проведении, тогда можно запросом
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.