Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 17.11.2009
Сообщений: 27
1C 8.x

Фильтр в упр.

01.11.2012, 17:42. Показов 3395. Ответов 33
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть документ "Договор". В табличной части есть поле "Вид работ" и "Исполнитель", которые выбираются из списка (справочников).
Потом создаю документ "Оплата сотрудникам", где есть поле "Вид работ" и "Сумма". Как сделать так, чтобы при выборе фамилии автоматически выдавался список вида работ для данного сотрудника из документа "Договор"??? Еще нужно учесть дату.
Миниатюры
Фильтр в упр.   Фильтр в упр.   Фильтр в упр.  

0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.11.2012, 17:42
Ответы с готовыми решениями:

Фильтр по форме по нескольким логическим полям с использованием кнопки Общий фильтр
Здравствуйте! Есть простая таблица и созданная форма. Идея в том, чтобы ставя галки осуществлять поиск (с помощью кнопки общий фильтр...

Загрузка ТЧ упр. формы
Подскажите пожалуйста, не знаю как заполнить ТЧ документа... Переписал обработку для загрузки из Excell данных, получаю прочитанный...

Картинки на упр форме
имеется справочник хранидищеДопИнф, который хранит файлы либо картинки. я запросом получаю те эл.справочника которые хранят картинки, и...

33
900 / 877 / 11
Регистрация: 15.03.2012
Сообщений: 2,680
01.11.2012, 17:55
Реализуйте получение списка запросом, и свой список в процедуре ПриНачалеВыбора вашего поля.
0
0 / 0 / 0
Регистрация: 17.11.2009
Сообщений: 27
01.11.2012, 20:18  [ТС]
можно пожалуйста чуть подробнее?
0
900 / 877 / 11
Регистрация: 15.03.2012
Сообщений: 2,680
01.11.2012, 23:35
Цитата Сообщение от Ева*** Посмотреть сообщение
можно пожалуйста чуть подробнее?
Процедура ПриНачалеВыбора, позволяет переопределить поведение системы, когда Вы нажимаете на кнопку "...". Напишите в ней код обеспечивающий нужное Вам поведение системы.
0
0 / 0 / 0
Регистрация: 04.11.2012
Сообщений: 15
04.11.2012, 23:56
Меня тоже интересует этот вопрос! А разве можно вывести список из другого документа??? В моем представлении это можно сделать только из справочника. Подскажите пожалуйста код!!!
0
null
 Аватар для delphi_Int
57 / 51 / 13
Регистрация: 06.11.2012
Сообщений: 434
06.11.2012, 11:16
Запрос идет через Регистр Сведений. Документ заполняется........и я ещё не понял про Даты и куда сумму пописывать? Поподробнее??? Делать запрос по документам или справочникам не очень эффективно

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
&НаКлиенте
Процедура ФамилияПриИзменении(Элемент)
    ФамилияНаСервере(Объект.Исполнитель);
КонецПроцедуры
 
&НаСервере
Функция ФамилияНаСервере(Исполнитель)
 
    ОбъектДокумент = РеквизитФормыВЗначение("Объект", Тип("ДокументОбъект.ОплатаСотрудникам"));
        
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   Временный.ВидРаботы
        |ИЗ
        |   РегистрСведений.Временный КАК Временный
        |ГДЕ
        |   Временный.Исполнитель = &Исполнитель";
 
    Запрос.УстановитьПараметр("Исполнитель", Исполнитель);
 
    Рез = Запрос.Выполнить().Выгрузить();
        
                
    
    
    ОбъектДокумент.ТЧ.Загрузить(Рез);
    
    ЗначениеВРеквизитФормы(ОбъектДокумент, "Объект");
 
Конецфункции
0
0 / 0 / 0
Регистрация: 04.11.2012
Сообщений: 15
06.11.2012, 17:18
ну вот у меня например, такая ситуация:
в "Оплате" выбирается фамилия и автоматически в табличной части появляются все работы, которые относятся к данному человеку. (должны каким-то образом перебираться все "Договоры", где есть его фамилия. возможно это или нет?)
0
900 / 877 / 11
Регистрация: 15.03.2012
Сообщений: 2,680
06.11.2012, 17:22
Цитата Сообщение от Olga_W Посмотреть сообщение
ну вот у меня например, такая ситуация:
в "Оплате" выбирается фамилия и автоматически в табличной части появляются все работы, которые относятся к данному человеку. (должны каким-то образом перебираться все "Договоры", где есть его фамилия. возможно это или нет?)
Да возможно.
0
0 / 0 / 0
Регистрация: 04.11.2012
Сообщений: 15
06.11.2012, 18:37
Сумму у меня нужно просто вручную ставить. По факту выполнения работы. А с датой у меня такая схема:
если в документе "Оплата" выбирают 12.09.2012, то в табличной части должен появиться отфильтрованный список работ. Т.е то, что позднее той даты не выводится.
0
 Аватар для duk337
2956 / 1768 / 84
Регистрация: 03.11.2011
Сообщений: 8,280
06.11.2012, 19:03
Цитата Сообщение от Olga_W Посмотреть сообщение
если в документе "Оплата" выбирают 12.09.2012, то в табличной части должен появиться отфильтрованный список работ. Т.е то, что позднее той даты не выводится.
ммм...
то, что позднее
абстрагируем:
какое-то условие
причем, оно должно использовать атрибут из строки работ. Если там есть дата - можно по дате. Если есть акцепт выполнения - по нему... ну и т.д.
0
900 / 877 / 11
Регистрация: 15.03.2012
Сообщений: 2,680
06.11.2012, 20:56
Цитата Сообщение от Olga_W Посмотреть сообщение
ну вот у меня например, такая ситуация:
в "Оплате" выбирается фамилия и автоматически в табличной части появляются все работы, которые относятся к данному человеку. (должны каким-то образом перебираться все "Договоры", где есть его фамилия. возможно это или нет?)
В этой ветке Отбор документа по реквизитам все расписано. Вам только нужно накладывать отбор на ссылку и получить необходимый список.
0
null
 Аватар для delphi_Int
57 / 51 / 13
Регистрация: 06.11.2012
Сообщений: 434
07.11.2012, 10:31
Теперь понятно. Это тот же самый пример что я написал, только Запрос строиьт не по Регистру Сведений, а по Документу Договор и в запросе по дате делать условие на выборку. По Регистру не получается ,т.к. не получается фильтр по Дате сделать. А так все просто

Добавлено через 13 часов 29 минут
100% Рабочий (отбор по Дате и по Работнику в интервале между Датами указанными в Документе Договор)...Ещё нужно создать РегистрСведений и создать в нем измерения ВидРаботы(СправочникСсылка.ВидРаботы) и Исполнитель(СправочникСсылка.Работники)

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
&НаКлиенте
Процедура ФамилияПриИзменении(Элемент)
    ФамилияНаСервере(Объект.Дата, Объект.Исполнитель);
КонецПроцедуры
 
&НаСервере
процедура ФамилияНаСервере(ДатаОпл, Исполнитель)
 
    
        
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   Временный.ВидРаботы
        |ИЗ
        |   РегистрСведений.Временный КАК Временный
        |       ЛЕВОЕ СОЕДИНЕНИЕ Документ.Договор КАК Договор
        |       ПО Временный.Регистратор = Договор.Ссылка
        |ГДЕ
        |   &ДатаОпл МЕЖДУ Договор.ДатаОкончанияРабот И Договор.ДатаНачалаРабот
        |   И Временный.Исполнитель = &Исполнитель";
 
    Запрос.УстановитьПараметр("Исполнитель", Исполнитель);
    Запрос.УстановитьПараметр("ДатаОпл", ДатаОпл);
    
    Рез = Запрос.Выполнить().Выгрузить();
    
    ОбъектДокумент = РеквизитФормыВЗначение("Объект", Тип("ДокументОбъект.ОплатаСотрудникам"));
    
    ОбъектДокумент.ТЧ.Загрузить(Рез);
    
    ЗначениеВРеквизитФормы(ОбъектДокумент, "Объект");
 
конецпроцедуры
0
0 / 0 / 0
Регистрация: 04.11.2012
Сообщений: 15
07.11.2012, 17:57
спасибо большое! но у меня почему то не получается. ошибок даже не выдает. что это может быть?
0
null
 Аватар для delphi_Int
57 / 51 / 13
Регистрация: 06.11.2012
Сообщений: 434
08.11.2012, 15:41
А у вас по регистрам проводятся записи при проведении докум. Договор? Запрос берет данные из регистра и даты из документа.Если в регистре все пусто тогда так и будет

Модуль объекта докум. Договор:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Процедура ОбработкаПроведения(Отказ, Режим)
    //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
 
    // регистр Временный
    Движения.Временный.Записывать = Истина;
    
    
    Для Каждого ТекСтрокаТЧ Из ТЧ Цикл
        Движение = Движения.Временный.Добавить();
        Движение.Период = Дата;
        движение.ВидРаботы = ТекСтрокаТЧ.ВидРаботы;
        Движение.Исполнитель = ТекСтрокаТЧ.Исполнитель;
    КонецЦикла;
 
    Движения.Временный.Записать();
    //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
1
0 / 0 / 0
Регистрация: 04.11.2012
Сообщений: 15
08.11.2012, 22:57
спасибо огромное! а можно теперь поподробнее еще про регистры, которые здесь создаются?
0
null
 Аватар для delphi_Int
57 / 51 / 13
Регистрация: 06.11.2012
Сообщений: 434
08.11.2012, 23:11
Я выше писал......Ещё нужно создать РегистрСведений и создать в нем измерения ВидРаботы(СправочникСсылка.ВидРаботы) и Исполнитель(СправочникСсылка.Работники)
0
900 / 877 / 11
Регистрация: 15.03.2012
Сообщений: 2,680
08.11.2012, 23:28
Цитата Сообщение от delphi_Int Посмотреть сообщение
Запрос.Текст =
* * * * "ВЫБРАТЬ
* * * * | * Временный.ВидРаботы
* * * * |ИЗ
* * * * | * РегистрСведений.Временный КАК Временный
* * * * | * * * ЛЕВОЕ СОЕДИНЕНИЕ Документ.Договор КАК Договор
* * * * | * * * ПО Временный.Регистратор = Договор.Ссылка
* * * * |ГДЕ
* * * * | * &ДатаОпл МЕЖДУ Договор.ДатаОкончанияРабот И Договор.ДатаНачалаРабот
* * * * | * И Временный.Исполнитель = &Исполнитель";
Запрос.УстановитьПараметр("Исполнитель", Исполнитель);
* * Запрос.УстановитьПараметр("ДатаОпл", ДатаОпл);
Простите. а зачем соединение с договором? Да и регистр зачем заводить?
0
null
 Аватар для delphi_Int
57 / 51 / 13
Регистрация: 06.11.2012
Сообщений: 434
09.11.2012, 08:54
Можно и не заводить к данной ситуации, Вы тоже правы, но тем не менее хорошим тоном будет заведение регистра. Документ - это своего рода описание/отражение деятельности хоз-ва/произ-ва, но бывают случаи что приходится менять данные в документе, НО с сохранением старых данных, вот в этом случаи без регистра никуда

Добавлено через 11 минут
... и в данном случаи мы просто перегружаем данные из Запроса в Табличную часть документа, а если делать Запрос по Документам, то нужно будет делать ещё доп. цикл для выявления самих искомых значений, т.к. он будет результат выдавать в виде массива, при больших объемах данных может быть не очень оптимально
0
0 / 0 / 0
Регистрация: 04.11.2012
Сообщений: 15
09.11.2012, 09:19
когда я создаю новую запись в Договоре при проведении выдается ошибка: "Поле объекта не обнаружено (Временный)". Недопониманию с чем это связано?
0
null
 Аватар для delphi_Int
57 / 51 / 13
Регистрация: 06.11.2012
Сообщений: 434
09.11.2012, 11:12
это классическая ошибка. Значит у вас просто где-то не совпадают имена или типы...Смысл в чем: Договор хочет сделать запись в регистре, а имена не совпадают. Просто проверь реквизиты в регистре и в договоре ещё раз, и проверьте в модуле объекта докум. Договор синтаксис ещё раз
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.11.2012, 11:12
Помогаю со студенческими работами здесь

Помогите С Упр. Формами
Есть обработка следующего вида(смотри во вложении) Обработка написана с использованием построителя. Вопрос, как можно все это...

8.3 Упр.прил - Конвертация из 7.7
Конфигурация на 7.7 имеет свою структуру на 8.3 пишется сейчас и имеет свою. Вопрос как можно перенести данные из старой в новую, чтобы...

Настройка рабочего стола (упр)
Можно как то на рабочем столе отобразить диаграмму? Знаю что можно вставить форму документа, но это не очень подходит.

Упр.формы, убрать двоеточие
имеется три реквизита упр формы, расположенные в ряд. типа номер:< полеввода1> /: <полеввода2>/:<полеввода3> ...

8.3 Упр.прил.: Дерево из Запроса ?
Есть справочник с группами и элементами - нужно получить дерево с видом: Группа Элемент Группа2 Элемент2 и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru