Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Форма списка документа: отделить ряд документов по определенному признаку, разместить вверху
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
Constantus
Приветствую, Форумчане!
1с.8.3.12, самопис, УФ, БСП

Полный бред, конечно, но вот уперлись хозяева жизни...

Имеется форма списка документа "Установка цен".
Требуется каким-то образом отделить ряд этих документов по определенному признаку (пусть это будет булевский реквизит "Особые" на форме), выделить их черным жирным (условное форматирование), и, главное, они должны быть всегда вверху, независимо от даты.

В идеале отделить их каким-либо разделителем, наподобие как в конфигураторе или на рабочем столе разделителем можно мышью отодвигать...

Или как можно в рамках одной формы расположить 2-е формы с разным отбором документов по признаку?

Насколько такое можно осуществить?

Создал новую форму списка. Туда добавил 2-а динамических списка с разным отбором по "Особому".

Визуальный эффект получился.

А как мне можно будет к этим 2-м динамическим формам привязать 2-е разные формы документа. Т.к. расчет на формах документа из каждого списка будет разный.

Например, из "верхнего" при нажатии "Создать" нужно открыть форму, где будет автоматом устанавливаться реквизит "Особый" = Истина.

Т.е. вызывать свои формы из каждого динамического списка? Создам еще 2-е формы документа и их нужно привязать к своим динамическим спискам...
pablo
1. Можно динамически конструировать форму документа в зависимости от этого признака.
2. Можно при открытии формы по умолчанию проверять это признак, закрывать форму по умолчанию и открывать нужную форму. В таком случае можно не заморачиваться с кнопками в ДС.
3. Либо создать кнопки для "нестандартного" ДС так, чтобы они работали с "нужными" формами.
Constantus
Пытаюсь открыть форму существующего документа нестандартной формы:

&НаКлиенте 
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)

СтандартнаяОбработка = Ложь;
ОткрытьФорму("Документ.УстановкаЦенНаАртикулированныеСтелы.Форма.ФормаДокумента1", Новый Структура("Ключ",ВыбраннаяСтрока.Ссылка));
КонецПроцедуры


выдает ошибку: Поле объекта не обнаружено (Ссылка)

Как правильно открыть форму?
Vofka
ОткрытьФорму("Документ.УстановкаЦенНаАртикулированныеСтелы.Форма.ФормаДокумента1", Новый Структура("Ключ", ВыбраннаяСтрока));

?
Constantus
Vofka @ Сегодня, 15:34 необходимо зарегистрироваться для просмотра ссылки ,


а как теперь открыть форму для редактировании (карандашик) и при копировании из форма списка для открытия нужной формы?
Vofka
Цитата(Constantus @ 27.08.19, 12:48) необходимо зарегистрироваться для просмотра ссылки
а как теперь открыть форму для редактировании (карандашик)

При открытии формы не указывается открыть её на редактирование или на просмотр. Редактирование/не редактирование регулируется либо правами в ролях либо из кода играться свойствами Доступность, ТолькоПросмотр.

Цитата(Constantus @ 27.08.19, 12:48) необходимо зарегистрироваться для просмотра ссылки
и при копировании из форма списка для открытия нужной формы?

Вы хотите, что бы при нажатии кнопки скопировать открывалась копия выбранного документа (но по факту это новый документ) с возможностью там что-то поменять?
sava1
Цитата(Vofka @ 27.08.19, 12:57) необходимо зарегистрироваться для просмотра ссылки
При открытии формы не указывается открыть её на редактирование или на просмотр

не надо...
ТолькоПросмотр - это параметр формы и его можно указать при открытии формы

написано же -

Цитата(pablo @ 27.08.19, 11:39) необходимо зарегистрироваться для просмотра ссылки
2. Можно при открытии формы по умолчанию проверять это признак, закрывать форму по умолчанию и открывать нужную форму. В таком случае можно не заморачиваться с кнопками в ДС.



как вариант - использовать ПриПолученииФормы
Constantus
Цитата(Vofka @ 27.08.19, 15:57) необходимо зарегистрироваться для просмотра ссылки
Вы хотите, что бы при нажатии кнопки скопировать открывалась копия выбранного документа (но по факту это новый документ) с возможностью там что-то поменять?


Да, это должен быть новый документ с полным наборам данных документа источника. Классическое открытие при копировании

Цитата(pablo @ 27.08.19, 14:39) необходимо зарегистрироваться для просмотра ссылки
2. Можно при открытии формы по умолчанию проверять это признак, закрывать форму по умолчанию и открывать нужную форму. В таком случае можно не заморачиваться с кнопками в ДС.


А как правильно сначала открыть, потом закрыть? На какое событие ставить?
Vofka
Constantus, вот что я нагуглил на скорую руку:

&НаКлиенте
Процедура Команда(Команда)

Форма = ПолучитьФорму("Документ.НашДокумент.ФормаОбъекта");
ДанныеФормы = Форма.Объект; // Получаем объект формы в переменную
ЗаполнитьДокументНаСервере(ДанныеФормы); // Заполняем документ на сервере
КопироватьДанныеФормы(ДанныеФормы, Форма.Объект); // копируем наш объект в объект формы и далее открываем ее
Форма.Открыть();

КонецПроцедуры

// Можно использовать безконтекстный вызов, оптимизируем передачу данных

&НаСервереБезКонтекста

Функция ЗаполнитьДокументНаСервере(ДанныеФормы);

Док = ДанныеФормыВЗначение(ДанныеФормы, Тип("ДокументОбъект.НашДокумент")); // Получаем объект из данных формы ИЛИ

Док = Документы.НашДокумент.СоздатьДокумент();

// Заполняем реквизиты объекта или другие действия ********

ЗначениеВДанныеФормы(Док,ДанныеФормы); // Кладем обратно в объект формы уже созданный документ

КонецФункции
sava1
Цитата(Constantus @ 27.08.19, 14:17) необходимо зарегистрироваться для просмотра ссылки
На какое событие ставить?

ПриОткрытии - открываем нужнуюФорму - ЭтаФорма.Закрыть();
mut
По-моему, это проще сделать без программирования, настройками формы. Группировка по признаку Особый, упорядочивание, чтобы были сверху, условное оформление чтобы выделить цветом.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.