Имя: Пароль:
1C
1С v8
Подсчет документов, отбор по огранизации
0 1Слайт
 
29.07.20
16:37
Добрый день.
Ребят, нужно подсчитать общее кол-во документов, но если огранизация НЕ содержит в названии слово Морошкино (то есть может быть ОАО Морошкино, может ПАО Морошкино, поэтому через запрос отбор по справочнику) - записать кол-во таких документов в др. колонку
то есть так:
Всего    в т.ч. сторонные орг-ии
30       25

Когда прописывала четко поиск НайтиПоНаименованию("ПАО Морошкино") - все было ок
сейчас через поиск организации запросом не вычитает те что Морошкино

ТабДок = Новый ТабличныйДокумент;
    НовОтчет = РеквизитФормыВЗначение("Отчет");
    ОбъектМакет = НовОтчет.ПолучитьМакет("Макет1");
    ОбластьЗаголовок = ОбъектМакет.ПолучитьОбласть("Заголовок");
    ОбластьЗаголовок.Параметры.ТекущаяДата = Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy") + "г.";
    ОбластьШапкаТабл = ОбъектМакет.ПолучитьОбласть("ШапкаТабл");    
    ОбластьЗначениеТабл = ОбъектМакет.ПолучитьОбласть("ЗначениеТабл");
    ОбластьПодвал = ОбъектМакет.ПолучитьОбласть("Подвал");
    
    Запрос9 = Новый Запрос;
        Запрос9.Текст = "ВЫБРАТЬ
                            |    Организация.Наименование КАК Наименование
                            |ИЗ
                            |    Справочник.Организация КАК Организация
                            |ГДЕ
                            |    Организация.Наименование ПОДОБНО ""%Морошкино%""";
            
        Выборка9 = Запрос9.Выполнить().Выбрать();    
        
        ТабДок.Вывести(ОбластьЗаголовок);
        ТабДок.Вывести(ОбластьШапкаТабл);
        Пока Выборка9.Следующий() Цикл    
            оргРазр = выборка9.наименование;
            Сообщить(оргРазр);
            //Подсчет экземпляров подлинников и копий по каждому документу
               #Область ПодсчетЭкземпляров
               #Область Запрос
                Запрос = Новый Запрос;
                        Запрос.Текст =
                            "ВЫБРАТЬ
                            |    АрхивныйДокумент.Ссылка КАК Ссылка,
                            |    ВЫБОР
                            |        КОГДА АрхивныйДокумент.РегНомер ПОДОБНО ""Т-__________С""
                            |                И АрхивныйДокумент.КолвоКопий > 0
                            |                И АрхивныйДокумент.СтатусДокументаКоп = &Статус
                            |        ТОГДА ЕСТЬNULL(АрхивныйДокумент.КолвоКопий, 0)
                            |    КОНЕЦ КАК СТ6,
                            |    ВЫБОР
                            |        КОГДА АрхивныйДокумент.РегНомер ПОДОБНО ""Т-__________С""
                            |                И АрхивныйДокумент.оргРазр <> &оргРазр
                            |                И АрхивныйДокумент.КолвоКопий > 0
                            |                И АрхивныйДокумент.СтатусДокументаКоп = &Статус
                            |            ТОГДА ЕСТЬNULL(АрхивныйДокумент.КолвоКопий, 0)
                            |    КОНЕЦ КАК СТ7,
                            |    ВЫБОР
                            |        КОГДА АрхивныйДокумент.РегНомер ПОДОБНО ""Т-__________СС""
                            |                И АрхивныйДокумент.КолвоКопий > 0
                            |                И АрхивныйДокумент.СтатусДокументаКоп = &Статус
                            |            ТОГДА ЕСТЬNULL(АрхивныйДокумент.КолвоКопий, 0)
                            |    КОНЕЦ КАК ССТ6,
                            |    ВЫБОР
                            |        КОГДА АрхивныйДокумент.РегНомер ПОДОБНО ""Т-__________СС""
                            |                И АрхивныйДокумент.КолвоКопий > 0
                            |                И АрхивныйДокумент.оргРазр <> &оргРазр
                            |                И АрхивныйДокумент.СтатусДокументаКоп = &Статус
                            |            ТОГДА ЕСТЬNULL(АрхивныйДокумент.КолвоКопий, 0)
                            |    КОНЕЦ КАК ССТ7,
                            |    АрхивныйДокумент.Ссылка.оргРазр КАК оргРазр,
                                |    АрхивныйДокумент.КолвоПодл КАК КолвоПодл,
                            |    АрхивныйДокумент.КолвоКопий КАК КолвоКопий,
                            |    АрхивныйДокумент.Индекс КАК Индекс,
                            |    АрхивныйДокумент.Гриф КАК Гриф
                            |ИЗ
                            |    Документ.АрхивныйДокумент КАК АрхивныйДокумент
                            |ИТОГИ
                            |    СУММА(СТ6),
                            |    СУММА(СТ7),
                            |    СУММА(ССТ6),
                            |    СУММА(ССТ7)
                            |ПО
                            |    ОБЩИЕ";
                        #КонецОбласти
                    Запрос.УстановитьПараметр("оргРазр",оргРазр);
                    Запрос.УстановитьПараметр("Статус",Перечисления.СтатусДокумента.НаХранении);

                    Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
                    Пока Выборка.Следующий() Цикл
                            ОбластьЗначениеТабл.Параметры.СТ6 = Выборка.СТ6;
                            ОбластьЗначениеТабл.Параметры.ССТ6 = Выборка.ССТ6;
                        // подсчет копий сторонние
                        Если Выборка.оргРазр <> оргРазр Тогда
                            ОбластьЗначениеТабл.Параметры.СТ7 = Выборка.СТ7;
                            ОбластьЗначениеТабл.Параметры.ССТ7 = Выборка.ССТ7;
                        КонецЕсли;
КонецЦикла;
КонецЦикла;
#КонецОбласти
    ТабДок.Вывести(ОбластьЗначениеТабл);
    ТабДок.Вывести(ОбластьПодвал);
    Возврат(ТабДок);
1 acht
 
29.07.20
16:42
Пушо надо наоборот. Выбрать те, где не подобно, и искать по равенству оргРазр.
Ну и еще понять разницу между строкой и ссылкой - что хранится в оргРазр
2 1Слайт
 
29.07.20
16:53
(1) не понимаю причем тут равенство, когда проще отбросить ненужные часть имени которых уже известно..
оргРазр -это наименование из справочника Организации
3 acht
 
29.07.20
17:09
сумма(когда АрхивныйДокумент.оргРазр подобно &Морошкино тогда 1 иначе 0) как поле2
, сумма(когда АрхивныйДокумент.оргРазр не подобно &Морошкино тогда 1 иначе 0) как поле2
4 acht
 
29.07.20
17:10
в первой строке - "как поле 1" ессно
5 1Слайт
 
30.07.20
09:37
(3) подобно &Морошкино - значит установить параметр...
АрхивныйДокумент.оргРазр не ПОДОБНО ""%Морошкино%"" - выдает ошибку параметров, я же в документе
6 1Слайт
 
30.07.20
09:38
у кого еще есть варианты?
7 1Слайт
 
30.07.20
13:59
(1) спасибо!!
Запрос9 = Новый Запрос;
        Запрос9.Текст = "ВЫБРАТЬ
                |    Организация.Ссылка КАК Ссылка
                        |ИЗ
                        |    Справочник.Организация КАК Организация
                        |ГДЕ
                        |    Организация.Наименование не ПОДОБНО ""%Морошкино%""";
            
        Выборка9 = Запрос9.Выполнить().Выгрузить();    
        Для Каждого Значения из Выборка9 цикл
            оргРазр = Значения.Ссылка;
                Запрос = Новый Запрос;
                        Запрос.Текст =
                            "ВЫБРАТЬ
                            |    АрхивныйДокумент.Ссылка КАК Ссылка,
                            |    ВЫБОР
                            |        КОГДА АрхивныйДокумент.РегНомер ПОДОБНО ""Т-__________С""
                            |                И АрхивныйДокумент.КолвоКопий > 0
                            |                И АрхивныйДокумент.СтатусДокументаКоп = &Статус
                            |            ТОГДА ЕСТЬNULL(АрхивныйДокумент.КолвоКопий, 0)
                            |    КОНЕЦ КАК СТ6,
                            |    ВЫБОР
                            |        КОГДА АрхивныйДокумент.РегНомер ПОДОБНО ""Т-__________С""
                            |                И АрхивныйДокумент.оргРазр В (&оргРазр)
                            |                И АрхивныйДокумент.КолвоКопий > 0
                            |                И АрхивныйДокумент.СтатусДокументаКоп = &Статус
                            |            ТОГДА ЕСТЬNULL(АрхивныйДокумент.КолвоКопий, 0)
                            |    КОНЕЦ КАК СТ7,
...............
8 craxx
 
30.07.20
14:14
(7) Нда... запрос в цикле это сильно...
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший