Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Сгруппировать и сравнить в ТЧ записи по определенному отбору          
Constantus Подменю пользователя
сообщение 19.03.20, 11:51
Сообщение #1

Ветеран
*******
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0

Приветствую, Форумчане!
1с8.3.12, УФ, самопис

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

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

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

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

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

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

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

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

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

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

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


TohaMonster Подменю пользователя
сообщение 20.03.20, 8:54
Сообщение #2

Говорящий
***
Группа: Пользователи
Сообщений: 67
Спасибо сказали: 28 раз
Рейтинг: 28

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

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

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

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


Но, как вариант, эту проверку делать при проведении, тогда можно запросом

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 29.03.24, 1:00
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!