Имя: Пароль:
1C
1С v8
Комбинированное поле внешнего отчета
,
0 Len1vec
 
21.08.17
18:09
Добрый день. Подскажите, пожалуйста. Есть отчет, но не могу сделать последний шаг.

Внешний отчет. Нужно вывести в отчет поле (пусть будет "ЭтоСуперМаршрут"), в котором показывается "Да", если маршруты переработки имеют строки "01;02" + "02;01".
Вычисляемое поле "ЭтоКомбинированныйМаршрут" показывает "Да", если в записях маршрутов есть строки ТОЛЬКО "01;02" или "02:01", и "Нет", если записи содержат ТОЛЬКО "01;01" или "02;02".

Наглядно. Нет случая, где были бы строки со значениями маршрутов "01;02" + "02;01". Только "01;01" + "01;01", "02;02" + "02;02" или "02;01" + "02;01" + "02;01".

ВЫБРАТЬ
    СпецификацииУпрУчет.Ссылка КАК ТехКарта,
    СпецификацииУпрУчет.Контрагент КАК Клиент,
    СпецификацииУпрУчет.Владелец КАК Номенклатура,
    СпецификацииУпрУчетМаршрутыПереработки.МаршрутПереработки
ПОМЕСТИТЬ ТехКарты
ИЗ
    Справочник.СпецификацииУпрУчет КАК СпецификацииУпрУчет
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.СпецификацииУпрУчет.МаршрутыПереработки КАК СпецификацииУпрУчетМаршрутыПереработки
        ПО (СпецификацииУпрУчетМаршрутыПереработки.Ссылка = СпецификацииУпрУчет.Ссылка)
            И (СпецификацииУпрУчетМаршрутыПереработки.НомерСтроки = 2)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТехКарты.ТехКарта,
    ТехКарты.Клиент,
    ТехКарты.Номенклатура,
    МАКСИМУМ(ЗаказПокупателя.Ссылка) КАК ЗаказПокупателя,
    ТехКарты.МаршрутПереработки,
    ВЫБОР
        КОГДА ТехКарты.МаршрутПереработки ПОДОБНО "%01%"
                И ТехКарты.МаршрутПереработки ПОДОБНО "%02%"
            ТОГДА ИСТИНА
        ИНАЧЕ ЛОЖЬ
    КОНЕЦ КАК ЭтоКомбинированныйМаршрут
ИЗ
    ТехКарты КАК ТехКарты
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК ЗаказПокупателя
        ПО ТехКарты.Клиент = ЗаказПокупателя.Контрагент
            И ТехКарты.ТехКарта.Спецификация = ЗаказПокупателя.Товары.Спецификация
            И ТехКарты.ТехКарта.ХарактеристикаПродукции = ЗаказПокупателя.Товары.ХарактеристикаНоменклатуры
            И ТехКарты.ТехКарта.Владелец = ЗаказПокупателя.Товары.Номенклатура

СГРУППИРОВАТЬ ПО
    ТехКарты.ТехКарта,
    ТехКарты.Клиент,
    ТехКарты.Номенклатура,
    ТехКарты.МаршрутПереработки,
    ВЫБОР
        КОГДА ТехКарты.МаршрутПереработки ПОДОБНО "%01%"
                И ТехКарты.МаршрутПереработки ПОДОБНО "%02%"
            ТОГДА ИСТИНА
        ИНАЧЕ ЛОЖЬ
    КОНЕЦ
1 Len1vec
 
22.08.17
10:06
Не реально реализовать, ребят?
2 FIXXXL
 
22.08.17
11:41
(0) я ничё не понял
но посмотри в сторону условного оформления ячейки отчета
3 Len1vec
 
22.08.17
11:54
(2) Есть табличная часть "МаршрутыПереработки". В ней поле - "МаршрутыПереработки" с типом "Строка". Табличная часть содержит записи, в поле "Маршруты переработки" которой записываются значения "01;02", "01;01", "02;01" или "02;02". В отчет выводится техкарта с заказом, клиентом, номенклатурой, комбинированным маршрутом (если в поле "Маршруты переработки" есть записи с 01 и 02 выводится "Да" и "Нет", если запись содержит "01;01" или "02;02") и вычисляемое поле. Вычисляемое поле, должно показывать "Да", если поля в строках различаются.
Комбинированный маршрут:
1. "02;01"
2. "02;01"
Пример того, что надо реализовать (Табличная часть "Маршруты переработки"):
1. "01;01"
2. "02;01"
3. "02;02"

Надеюсь, что объяснил понятливее для Вас
4 FIXXXL
 
22.08.17
11:56
(3) да не хочу я вникать в Ваши маршруты
и даже не буду спрашивать зачем разрез анализа сделан строкой :)
условное оформление уже посмотрели?
5 Len1vec
 
22.08.17
11:59
(4) да, но эту ячейку отчета мне еще вывести надо с правильным значением :)
6 lexasan
 
22.08.17
13:40
Как вариант можно предложить считать количество строк с комбинированными маршрутами и с некомбинированными, соответственно у тебя будет таблица заказ - количество комб. - количество некомб. и по ним делать отбор. Не знаю на сколько я правильно понял задачу.
7 Len1vec
 
22.08.17
14:22
(6) пробую, пытаюсь, но пока не получается)
8 Len1vec
 
22.08.17
14:45
(6) А может количество строк комбинированных меньше, чем количество всех строк?)
9 lexasan
 
22.08.17
16:02
(8) Что получить нужно в конечном итоге? Если нужно отфильтровать только документы, где есть комбинированные маршруты, то условие будет количество комбинированных > 0.
10 Len1vec
 
22.08.17
16:56
(9) в итоге надо выводить "Да", если в строках есть И комбинированные И не комбинированные, и "Нет", если там ТОЛЬКО комбинированные или ТОЛЬКО не комбинированные.

Вычисляемое поле в СКД сделал следующим:

ВЫБОР
    КОГДА (ВЫРАЗИТЬ(КОЛИЧЕСТВО(ВЫБОР
                        КОГДА ТехКарты.МаршрутПереработки ПОДОБНО "%01%"
                                И ТехКарты.МаршрутПереработки ПОДОБНО "%02%"
                            ТОГДА ИСТИНА
                        ИНАЧЕ ЛОЖЬ
                    КОНЕЦ) КАК ЧИСЛО)) < (ВЫРАЗИТЬ(КОЛИЧЕСТВО(ТехКарты.МаршрутПереработки) КАК ЧИСЛО))
            И (ВЫРАЗИТЬ(КОЛИЧЕСТВО(ВЫБОР
                        КОГДА ТехКарты.МаршрутПереработки ПОДОБНО "%01%"
                                И ТехКарты.МаршрутПереработки ПОДОБНО "%02%"
                            ТОГДА ИСТИНА
                        ИНАЧЕ ЛОЖЬ
                    КОНЕЦ) КАК ЧИСЛО)) > 0
        ТОГДА ИСТИНА
    ИНАЧЕ ЛОЖЬ
КОНЕЦ

Но почему-то в количество считаются заказы покупателей (в документе СпецификацииУпрУчет есть табличная часть "ЗаказПокупателя", но так же и связь с документом "ЗаказПокупателя")

Комбинированные маршруты показывает нормально:
ВЫБОР
    КОГДА ТехКарты.МаршрутПереработки ПОДОБНО "%01%"
            И ТехКарты.МаршрутПереработки ПОДОБНО "%02%"
        ТОГДА ИСТИНА
    ИНАЧЕ ЛОЖЬ
КОНЕЦ
11 lexasan
 
22.08.17
17:08
(10)
Комбинированные:

ВЫБОР
    КОГДА ТехКарты.МаршрутПереработки ПОДОБНО "%01%"
            И ТехКарты.МаршрутПереработки ПОДОБНО "%02%"
        ТОГДА ИСТИНА
    ИНАЧЕ ЛОЖЬ
КОНЕЦ

Некомбинированные
ВЫБОР
    КОГДА (ТехКарты.МаршрутПереработки ПОДОБНО "%01%"
            И НЕ ТехКарты.МаршрутПереработки ПОДОБНО "%02%") ИЛИ (ТехКарты.МаршрутПереработки ПОДОБНО "%02%"
            И НЕ ТехКарты.МаршрутПереработки ПОДОБНО "%01%")
        ТОГДА ИСТИНА
    ИНАЧЕ ЛОЖЬ
КОНЕЦ

твое поле "да/нет" = (Комбинированные И неКомбинированные)
12 FIXXXL
 
22.08.17
17:12
(10) так тебе надо на документ "повесить" да/нет в зависимости от набора строк ТЧ?
сделай лучше приЗаписи документа присвоение булевого реквизита документа, там же "смотри" строки ТЧ, анализируй
это будет правильно
13 Len1vec
 
23.08.17
08:41
(12) если бы можно было так легко это сделать, то сделал бы)
14 FIXXXL
 
23.08.17
08:42
(13) в чем проблемс?
15 Len1vec
 
23.08.17
08:45
(11) я Вас понял. Благодарю)
Но в первой же строке недочёт обнаружил. Почему-то в ТехКарте в ТЧ "МаршрутыПереработки" есть следующие строки с полем "Маршруты переработки":
1. "02;02"
2. "02;02"
3. "01;02"
4. "01;02"
В отчете выдает следующее:
Комбинированный: Нет;
Не комбинированный: Да;
Моё поле: Нет.
Почему в поле комбинированный выдал "Нет"?
16 FIXXXL
 
23.08.17
08:49
(15) я бы на твоем месте описал кейс всех сочетаний и присвоил им 1 или 0, затем просуммировал бы
17 Len1vec
 
23.08.17
08:49
(14) перепроводить все документы, на которых стоит запрет на изменение, не здорово будет, я думаю. Так же идет синхронизация со сторонними программами.
18 FIXXXL
 
23.08.17
08:55
(17) Заведи РС, пиши ПриЗаписи, первоначальное заполнение - обработкой без перепроведения.
ну и документ как объект можно записать без проведения :)
19 FIXXXL
 
23.08.17
08:56
(18) самый простой вариант: подписка и РС
20 Len1vec
 
23.08.17
09:15
(19) люди сказали, что им нужен внешний отчет, против них тяжело идти. Так что приходится выкручиваться как есть.
(16) Правду говорите. Ведь если будет вариант
1. "02;01"
2. "01;02",
то он будет принадлежать к моему полю.
21 Len1vec
 
23.08.17
11:30
Проблема в том, что почему-то считывается только первая строка в ТЧ...
22 lexasan
 
23.08.17
14:17
(21) И (СпецификацииУпрУчетМаршрутыПереработки.НомерСтроки = 2) - не из-за этого?
23 Len1vec
 
23.08.17
14:47
(22) заменил на И (СпецификацииУпрУчет.МаршрутыПереработки.НомерСтроки > 1) и самая первая карта, в которой записи
1. "02;02"
2. "02;02"
3. "01;02"
4. "01;02"
продублировалась. В одной строке в поле "Комбинированные" показывает "да", а в поле "Не комбинированные" - "Нет". Во второй строке - наоборот ("Комбинированные" - "Нет", "Не комбинированные" - "Да"). Хотя группировки стоят по техкарте
AdBlock убивает бесплатный контент. 1Сергей