Имя: Пароль:
1C
1С v8
Где заполняется отбор?
0 DJ Anthon
 
31.08.22
08:57
УТ 11, при открытии формы справочника Партнеры значение Форма.Параметры.Отбор пустое. Но если открывать его через какой-нибудь отчет на СКД, то у него уже заполнено значение Клиент = Истина. Где это заполняется? В отчете примитивный запрос, например


ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ТоварыОрганизаций.Период КАК Период,
    ТоварыОрганизаций.Регистратор КАК Регистратор,
    ТоварыОрганизаций.Регистратор.Партнер КАК РегистраторПартнер
ИЗ
    РегистрНакопления.ТоварыОрганизаций КАК ТоварыОрганизаций
ГДЕ
    ТоварыОрганизаций.Период > &ДатаНачала И (ТоварыОрганизаций.Период < &ДатаОкончания ИЛИ &ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1))
СГРУППИРОВАТЬ ПО
    ТоварыОрганизаций.Период,
    ТоварыОрганизаций.Регистратор,
    ТоварыОрганизаций.Регистратор.Партнер

УПОРЯДОЧИТЬ ПО
    Регистратор
1 Ёпрст
 
31.08.22
09:05
(0) в связях параметра выбора поди
2 DJ Anthon
 
31.08.22
09:11
(1) а где они тут? остальные вкладки отчета пустые
https://ibb.co/df5k7b1
3 Timon1405
 
31.08.22
09:16
можно выгрузить отчёт в файлЫ и поискать в них текстом "Клиент"
4 DJ Anthon
 
31.08.22
09:29
(3) я его с нуля создал только что. нащелкал три реквизита и всё. я слово клиент вообще нигде не писал. единственное место в конфигурации, где он упоминается, это команда Клиенты, которая вызывается неизвестно откуда. причем в нее отладчик не заходит. замер производительности дал мне только одну процедуру, в которой тоже ничего нет. данные присвоены в Параметры уже до неё.
5 СеменовСемен
 
31.08.22
09:31
параметры редактирования заполни
6 DJ Anthon
 
31.08.22
09:42
https://ibb.co/fXRQq88

бред какой-то ) заполнил параметры, но они не передаются. зато свойства Клиент теперь нет.
и все равно непонятно, где он заполняется в принципе по дефолту.

пофиг, пусть будет без отбора
7 Ёпрст
 
31.08.22
10:02
(6)
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

        ПартнерыИКонтрагенты.ПартнерыФормаВыбораСпискаПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);

далее
УстановитьОтборыДинамическийСписокПартнеры(Форма);
далее
....
ну ты понял, там твой клиент
8 DJ Anthon
 
31.08.22
10:48
(7) неа, это уже следствие. К началу вызова этой процки ЭтаФорма.Параметры.Отбор УЖЕ содержит Клиент = Истина, а дальнейший код просто причёсывает формочку. Кстати, перед ПриСозданииНаСервере есть еще один вызов события из модуля менеджера справочника Партнеры, но и в нем данные уже заполнены.


Процедура ОбработкаПолученияФормы(ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка)
    
    ИспользоватьПолнотекстовыйПоиск = ОбщегоНазначенияУТВызовСервера.ИспользуетсяПолнотекстовыйПоиск("ИспользоватьПолнотекстовыйПоиск");
    
    Если ВидФормы = "ФормаОбъекта" Тогда
        
        Если Параметры.Свойство("РежимВыбора") И Параметры.РежимВыбора Тогда
            
            ВыбраннаяФорма = "ПомощникНового";
            СтандартнаяОбработка = Ложь;

        ИначеЕсли ПолучитьФункциональнуюОпцию("ИспользоватьПартнеровКакКонтрагентов") Тогда
            
            ВыбраннаяФорма = "ФормаЭлементаРеквизитыКонтрагента";
            СтандартнаяОбработка = Ложь;
            
        КонецЕсли;
        
    ИначеЕсли ВидФормы = "ФормаВыбора" И НЕ ИспользоватьПолнотекстовыйПоиск Тогда
        
        ВыбраннаяФорма = "ФормаВыбораБезПолнотекстовогоПоиска";
        СтандартнаяОбработка = Ложь;
        
    ИначеЕсли ВидФормы = "ФормаСписка" И НЕ ИспользоватьПолнотекстовыйПоиск Тогда
        
        ВыбраннаяФорма = "ФормаСпискаБезПолнотекстовогоПоиска";
        СтандартнаяОбработка = Ложь;
        
    КонецЕсли;
    
КонецПроцедуры
9 Ёпрст
 
31.08.22
10:52
(8) включи замер, погляди стэк вызовов
10 Ёпрст
 
31.08.22
10:53
может, подписка какая
11 СеменовСемен
 
31.08.22
10:55
А точно в тех отчётах параметры редактирования не заполнены?
12 DJ Anthon
 
31.08.22
11:01
(9) так я так и искал изначально
(10) так замер бы показал
(11) ну скрин вон в начале
13 Ёпрст
 
31.08.22
11:05
(12) впечатление такое, что срабатывает команда Клиенты у справочника этого, только там явно отбор на Клиент втыкается
14 СеменовСемен
 
31.08.22
11:06
Так в отчете (0) тоже клиент=истина?
15 DJ Anthon
 
31.08.22
11:18
(13) да, но отладка туда не заходит. и где эта команда вызывается тогда?
(14) да, при попытке сделать выбор партнера, автоматически заполняется параметр отбора, что он клиент. а мне надо, чтобы был поставщик
16 ptiz
 
31.08.22
11:30
(15) В общей форме "ФормаОтчета" в процедуре ПриСозданииНаСервере() - уже заполнены параметры выбора (Клиент=Истина) для поля отбора.
17 DJ Anthon
 
31.08.22
11:50
(16) да, отладка туда заходит. кажется, я понял. где-то там динамически создаются поля, в них прописывается этот отбор, скорее всего, через какие-то настройки общих отчетов, компоновщиков и т. д., но напрямую его просто так не найти.
18 ptiz
 
31.08.22
11:53
(17) СКД сама тащит параметры выбора из поля Регистратор.Партнер. Из первого попавшегося :)
Проверил на созданной с нуля базе.
19 ptiz
 
31.08.22
11:58
+(18) вот https://disk.yandex.ru/d/FiTM99K2yQ677A
там отчет и два документа, можно играть с параметром выбора реквизита "Контрагент" и смотреть результат - как делается отбор
20 DJ Anthon
 
31.08.22
12:10
спасибо!
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший