Имя: Пароль:
1C
1С v8
Сортировка списка формы документа по определенному значению
, ,
0 Ly_Alena
 
03.12.14
13:34
Есть форма списка, одна из колонок "Подразделение". как отсортировать по этой колонки чтобы показывал записи только подразделения "цех металлоконструкций"?
1 Ly_Alena
 
03.12.14
13:37
Понятно что через отбор, но где можно прописать значение? На что-то типа:
Отбор1 = ФормаВыбора.Отбор.Подразделение;
        Отбор1.ВидСравнения  = ВидСравнения.Равно;
        
        Отбор1.Значение      = "Цех металлоконструкций";
        Отбор1.Использование = Истина;
        ФормаВыбора.ЭлементыФормы.ДокументСписок.НастройкаОтбора.Подразделение.Доступность = Ложь;

Выдает ошибку на значение
2 Ly_Alena
 
03.12.14
13:39
Текст ошибки:

{Документ.ЗаказНаПроизводство.Форма.ФормаСписка.Форма(104)}: Ошибка при установке значения атрибута контекста (Значение)
        Отбор1.Значение      = "Цех металлоконструкций";
по причине:
Неверный тип значения
3 Maxus43
 
03.12.14
13:39

Отбор1.Значение      = "Цех металлоконструкций";
ссылку туда надо, а не строку

4 Maxus43
 
03.12.14
13:40

Отбор1.Значение      = справочники.Подразделения.НайтиПоНаименованию("Цех металлоконструкций");

5 Ly_Alena
 
03.12.14
13:41
(4) Огромное спасибо! Столько времени на это убила - а оказывается так просто. Спасибо еще раз!
6 Ly_Alena
 
03.12.14
14:07
Теперь с другой сложностью сталкнулась. КОд такой

    ФормаВыбора = Документы.ЗаказНаПроизводство.ПолучитьФормуВыбора(,, );
        Отбор1 = ФормаВыбора.Отбор.Подразделение;
        Отбор1.ВидСравнения  = ВидСравнения.Равно;
        Отбор1.Значение      = Справочники.Подразделения.НайтиПоНаименованию("Цех металлоконструкций");
        Отбор1.Использование = Истина;
        ФормаВыбора.ЭлементыФормы.ДокументСписок.НастройкаОтбора.Подразделение.Доступность = Истина;
        ФормаВыбора.РежимВыбора = Истина;
        ЗаказНаПроизводство = ФормаВыбора.ОткрытьМодально();

Открывает форму - но я не могу выбрать документ. Что не так?
7 Михаил Козлов
 
03.12.14
14:46
Скорее всего из-за того, что в ФормаВыбора = Документы.ЗаказНаПроизводство.ПолучитьФормуВыбора(,, );
Вы не указали (второй параметр) владельца формы (куда нужно вернуть выбранный объект).
8 Ly_Alena
 
04.12.14
05:24
(7) Как это сделать?
9 Ly_Alena
 
04.12.14
05:50
ФормаВыбора = Документы.ЗаказНаПроизводство.ПолучитьФормуВыбора( , "Владелец", ЭтаФорма);
Так никаких изменений
10 Ly_Alena
 
04.12.14
05:59
ЭтаФорма.ВладелецФормы

Тоже реакции 0
11 ASV
 
04.12.14
06:01
ФормаВыбора = Документы.ЗаказНаПроизводство.ПолучитьФормуВыбора( , ЭтаФорма);
12 mergan
 
04.12.14
06:03
второй параметр

ФормаВыбора = Документы.ЗаказНаПроизводство.ПолучитьФормуВыбора( , ЭтаФорма);
13 Ly_Alena
 
04.12.14
06:06
(11) (12) так тоже пробовала - моргает и открывает список формы обычный не осортированные - а модально закрывается
14 mergan
 
04.12.14
06:25
это ты делаешь в предопределенной функции типа приизменении ... да?

если да ... то замени "ЭтаФорма" на "Элемент"
15 mergan
 
04.12.14
06:26
кстати а нафига модально открываешь?
16 Ly_Alena
 
04.12.14
06:30
Процедура ПриОткрытии()
    // Проверка однофирменности
    РаботаСДиалогами.УстановитьОтборПоОрганизации(ЭтаФорма, УчетПоВсемОрганизациям, ОсновнаяОрганизация, "ДокументСписок");
    
    Если РольДоступна("КонтроллерООТК") Тогда
        ФормаВыбора = Документы.ЗаказНаПроизводство.ПолучитьФормуВыбора(,ЭтаФорма.ВладелецФормы,);
        ФормаВыбора.Порядок.Установить("Дата Убыв");
        Отбор1 = ФормаВыбора.Отбор.Подразделение;
        Отбор1.ВидСравнения  = ВидСравнения.Равно;
        Отбор1.Значение      = Справочники.Подразделения.НайтиПоНаименованию("Цех металлоконструкций");
        Отбор1.Использование = Истина;
        ФормаВыбора.ЭлементыФормы.ДокументСписок.НастройкаОтбора.Подразделение.Доступность = Истина;
        ФормаВыбора.РежимВыбора = Истина;
        ЗаказНаПроизводство = ФормаВыбора.ОткрытьМодально();                                    
    КонецЕсли;
КонецПроцедуры
17 Ly_Alena
 
04.12.14
06:31
(15) Мне нужно чтобы когда определенный пользователь открывал список, то он был отсортирован по его подразделению. Потому как пользователи не умеют пользоваться 1с. Мне нужно максимально сократить их телодвижения по 1с, чтобы они не запутались.
18 Ly_Alena
 
04.12.14
06:32
Если это сделать не модально, тогда как?
19 Ly_Alena
 
04.12.14
06:33
ЭтаФорма.ВладелецФормы - это уже эксперименты как Вы понимаете
20 mergan
 
04.12.14
06:48
ты ваще все делаешь неправильно ...
21 mergan
 
04.12.14
06:49
ты при открытии формы тут-же пытаешься открыть ее модально для подбора
22 Ly_Alena
 
04.12.14
06:53
(21) Да действительно при открытии формы открываю модально. И подбор не работает.
23 Ly_Alena
 
04.12.14
06:54
блин, теперь не знаю куда это воткнуть...
24 Любопытная
 
04.12.14
06:57
(23) Начни с начала :) Втыкать открытие формы надо туда, откуда ты ее вызываешь.
25 Ly_Alena
 
04.12.14
07:02
Я вызываю ее из меню (24)
26 mergan
 
04.12.14
07:05
ты из меню вызываешь открытие чего?
27 mergan
 
04.12.14
07:05
а еще лучше всю задачу на русском расскажи
28 Ly_Alena
 
04.12.14
07:12
У контроллеров свой интерфейс - в меню "Документы" они выбирают "Заказ на производство". На основании этого заказа создают справочник. Так вот когда выбирают "Заказ на производство" открывается форма списка. Мне нужно чтобы список был отсортирован по подразделениям "Цех металлоконструкций" и по дате убывание.
29 Ly_Alena
 
04.12.14
07:13
(26) из меню вызывают открытие формы списка документа "Заказ на производство"
30 Любопытная
 
04.12.14
07:16
(28) А зачем тогда форма выбора? И вообще, этот код весь где написан?
31 Ly_Alena
 
04.12.14
07:19
(30) в модуле формы Заказа на производство, процедура при открытии формы списка
32 Любопытная
 
04.12.14
07:20
(31) список документов открывается из документа???
33 Ly_Alena
 
04.12.14
07:22
Когда в меню интерфейса настраиваешь действие - при выборе какой документ будет вызываться, есть выбор форма списка или чтобы сразу открывал документ (как я понимаю последний)
34 Ly_Alena
 
04.12.14
07:22
(32) из меню
35 Любопытная
 
04.12.14
07:23
(34) если из меню, то на кой черт писать этот код в форме документа???
36 Ly_Alena
 
04.12.14
07:23
(32) Документы = это заголовок кнопки меню. на нее нажимаешь - открывается подменю с выбором документов. Неужели я так непонятно объясняю?
37 Ly_Alena
 
04.12.14
07:23
(35) а где писать?
38 Любопытная
 
04.12.14
07:23
(36) очень непонятно!
39 Любопытная
 
04.12.14
07:24
(37) в форме списка в ПриОткрытии впишите свою сортировку.
40 Ly_Alena
 
04.12.14
07:26
(39) я в форме списка в ПриОткрытии и пишу (16)
41 Ly_Alena
 
04.12.14
07:27
(39) по дате список получается отсортировать а по подразделению нет. Нашла где-то пример с ОткрытьМОдально. Он сортирует открывает - но вот документ из этого списка я выбрать не могу.
42 mergan
 
04.12.14
07:27
(40)ты уже ее открыла форму списка ... тебе надо в ней сортировать и ничего не открывать
43 Любопытная
 
04.12.14
07:28
(41) Да при чем тут ОткрытьМодально вообще?
44 mergan
 
04.12.14
07:28
(41)куда ты из списка открытого из меню пытаешься получить документ? ... он его в элемент меню и отдает
45 Ly_Alena
 
04.12.14
07:29
(42) я это понимаю, но мои попытки отсортировать в списке не увенчались успехом. Как это сделать прямо там?
46 ASV
 
04.12.14
07:29

Процедура ПриОткрытии()
    // Проверка однофирменности

    РаботаСДиалогами.УстановитьОтборПоОрганизации(ЭтаФорма, УчетПоВсемОрганизациям, ОсновнаяОрганизация, "ДокументСписок");
    
    Если РольДоступна("КонтроллерООТК") Тогда
        //ФормаВыбора = Документы.ЗаказНаПроизводство.ПолучитьФормуВыбора(,ЭтаФорма.ВладелецФормы,);
        //ФормаВыбора.Порядок.Установить("Дата Убыв");
        Отбор1 = ЭтаФорма.Отбор.Подразделение;
        Отбор1.ВидСравнения  = ВидСравнения.Равно;
        Отбор1.Значение      = Справочники.Подразделения.НайтиПоНаименованию("Цех металлоконструкций");
        Отбор1.Использование = Истина;
        //ФормаВыбора.ЭлементыФормы.ДокументСписок.НастройкаОтбора.Подразделение.Доступность = Истина;
        //ФормаВыбора.РежимВыбора = Истина;
        //ЗаказНаПроизводство = ФормаВыбора.ОткрытьМодально();                                    
    КонецЕсли;
КонецПроцедуры
47 ASV
 
04.12.14
07:31
(45) по подразделению тебе отбор нужен а не сортировка. не путай понятия
48 mergan
 
04.12.14
07:31
Процедура ПриОткрытии()
    РаботаСДиалогами.УстановитьОтборПоОрганизации(ЭтаФорма, УчетПоВсемОрганизациям, ОсновнаяОрганизация, "ДокументСписок");
    Если РольДоступна("КонтроллерООТК") Тогда
        Отбор1 = ЭтаФорма.Отбор.Подразделение;
        Отбор1.ВидСравнения  = ВидСравнения.Равно;
        Отбор1.Значение      = Справочники.Подразделения.НайтиПоНаименованию("Цех металлоконструкций");
        Отбор1.Использование = Истина;
        ЭтаФорма.ДокументСписок.НастройкаОтбора.Подразделение.Доступность = Истина;
    КонецЕсли;
КонецПроцедуры
49 Ly_Alena
 
04.12.14
07:43
(48) (46) Спасибо огромное. Стыдно.
Закон Брукера: Даже маленькая практика стоит большой теории.