каким образом в основной форме списка регистра сведений отобразить список элементов справочника
1С Проф
Добрый вечер! Люди, может кто что подскажет? Готовлюсь к Профу по платформе, есть некоторые вопросы, по которым нигде не могу найти точный ответ.
Вот например:
Каким образом в основной форме списка регистра сведений отобразить список элементов справочника «Подразделения»?
ответы:
1 В основной форме списка регистра сведений отобразить такой список нельзя
2 Создать элемент управления «Табличное поле». Присвоить свойству этого поля «Тип значения» значение «СправочникСписок.Подразделения»
3 Создать элемент управления «Табличное поле». Создать реквизит формы с типом значения «СправочникСписок.Подразделения». Присвоить свойству табличного поля «Данные» имя созданного реквизита
4 Верны ответы 2 и 3
Предполагаю, что ответ №1. А проверить никак не могу.
Такой вопрос:
В процедуре, которая будет вызываться при подключении к базе данных через СОМ, нельзя использовать:
В окне «Конфигурация» при однократном нажатии кнопки «Упорядочить список» сортировка возможна.
1 для всех метаданных в целом
Каким образом в Конфигураторе можно интерактивно проверить права в ролях по отношению к ряду конкретных документов?
2. Посредством закрепления окна «Палитра свойств» и последовательным позиционированием на конкретных документах окна «Конфигурация». В окне «Палитра свойств» будет видна необходимая информация в режиме «только просмотр»
3. Посредством вызова окна «Дополнительно» и последовательным позиционированием на конкретных документах окна «Конфигурация». В окне «Дополнительно» будет видна необходимая информация на закладке «Права».
Понятно, что ответ 4, но в варианте 1 есть слово «только», которое во многих других вопросах в подобных ситуациях исключает свой вариант. Как быть в таком случае?
и вопрос по дополнительному индексированию в полнотекстовом поиске. Для чего применяется. к сожалению вариантов ответов не помню.
Дбовление записей в регистр сведений черзе динамический список на форме справочника
(4) Светлана5291, просто пиши данные в регистр обычным способом через набор записей.
динамический список новые записи подхватит и отобразит, если условия отбора будут позволять)
если интерактивно, то через форму. получаете форму, открываете пользователю, заранее можно заполнить известные реквизиты на форме.
А еще вопрос.
В зависимости от настроек пользователя на форму подкачивается название стации, при изменении которой на форме заполнятся ТЗ. Хотелось бы чтобы при активизации строки ТЗ ячейка с номером вагона передавалась как параметр в отборе из регистра сведений.
На форме динамический список с таблицей РС. Код есть.
&НаКлиенте
Процедура ЗаявкаНаВагонПриАктивизацииСтроки(Элемент)
//ТекДанные= Элементы.ЗаявкаНаВагон.ТекущиеДанные;
//Если ТекДанные<>Неопределено Тогда
НомерВагона = Элементы.ЗаявкаНаВагон.ТекущиеДанные.Вагон;
УстановитьОтбор1(НомерВагона);
//КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьОтбор1(НомерВагона)
ДислокацияВагона1.Отбор.Элементы.Очистить();
ЭлементОтбора1 = ДислокацияВагона1.Отбор.Элементы.Добавить(Тип(«ЭлементОтбораКомпоновкиДанных»));
ЭлементОтбора1.Использование = Истина;
ЭлементОтбора1.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(«Вагон»);
ЭлементОтбора1.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора1.ПравоеЗначение = НомерВагона;
Если в процедуре ПриАктивизации строки раскомментированы, то программа зацикливается, а если закомментированы как сейчас, то вообще не срабатывает.
В справочнике создать закладку и туда вывести значения регистра сведений
(10) я сейчас показал наставнику не правильно я все сделал. мне надо сделать закладку чтобы информация из регистра была в этой закладке
я создал объект справочника Кластера и создал регистр сведении изменение объекта, потом при записи в справочники информация записывается в регистре сведений и еще чуть доп информация и теперь мне надо в справочники кластера сделать закладку и то что записано в регистре вывести в эту закладку но тут я вообще начал тупить не знаю как эту закладку сделать
(13)Создай в форме Группа-Страницы (это будет главный раздел вкладок)
а в этой группе создавай Группа-Страница (Это и будет вкладка, в которой ты разместишь определённые реквизиты)
А что конкретно не получается?На счет обычной формы точно уверенны?Сейчас все смотрят в будущее и учатся сразу на управляемые формы.
В чем конкретно проблема у тебя?
это первый код чтобы записывали в регистр
(18) мне такой код надо писать чтобы из регистра в созданной закладке вывести инфо из регистра в справочник :
После этого хорошо бы передать в запрос параметр для отбора минимум ссылку на искомый объект.Так как записей в регистре может быть много.
Запрос.УстановитьПараметр(«ИмяНашегоИскомогоОбъекта»,Наименование);
Запрос.УстановитьПараметр(«Период»,Период);
&НаСервере
Процедура ПриОткрытииНаСервере()
Запрос = Новый Запрос;
Запрос.УстановитьПараметр(«ИмяНашегоИскомогоОбъекта»,Наименование);
Запрос.УстановитьПараметр(«Период»,Период);
Запрос.Текст =
«ВЫБРАТЬ
| ИзмененияОбъекта.Период,
| ИзмененияОбъекта.ТипОбъекта,
| ИзмененияОбъекта.Наименование,
| ИзмененияОбъекта.Пользователь,
| ИзмененияОбъекта.Стр1,
| ИзмененияОбъекта.Стр2,
| ИзмененияОбъекта.Спр1,
| ИзмененияОбъекта.Число1
|ИЗ
| РегистрСведений.ИзмененияОбъекта КАК ИзмененияОбъекта
|Где
|ИзмененияОбъекта.Наименование = Наименование
|и ИзмененияОбъекта.Период >= Период» ;
Для каждой Стр из ВыборкаДетальныеЗаписи Цикл
//Я люблю по отдельности,так видно,что получил в запросе.И каждый реквизит присваиваешь из запроса.
КонецЦикла;
Воспользуйся обработкой конструктор запросов,что бы в пользовательском режиме видеть получаемые данные.
Регистр сведений как дополнение объекта
Лень – двигатель прогресса. Эту фразу любила повторять моя школьная преподаватель математики, и по совместительству директор школы, когда приводила примеры решения одной и той же задачи разными путями, один из которых выглядел много проще и короче остальных. Работа программиста в этот принцип вписывается как нельзя лучше. По большому счету, мы стремимся, чтобы система учета работала как часы, потому что лень заниматься поддержкой пользователей. Ведь гораздо удобнее, когда пользователь в поддержке не нуждается и не отвлекает лишний раз от более серьезных занятий, чем разбирательства с ошибкой в данных. Мы стремимся делать наш код удобочитаемым, потому что лень в него вчитываться, пытаясь понять, что же все-таки там происходит. В конечном итоге от лени мы стараемся дробить свой код на процедуры и функции так, чтобы его можно было использовать в последующих разработках уже не заморачиваясь отладкой куска, который всегда отлично работал и продолжает работать. И именно от лени многие из нас создают разного рода универсализмы.
Эту статью меня сподвиг написать один из посетителей Инфостарта, когда в комментариях темы о полезных функциях и процедурах я забросил текст небольшого модуля для подключения к управляемым формам объектов данных, связанных с этими объектами и хранимых в регистрах сведений. Почти сразу нашелся желающий прочесть подробнее и в отдельной статье, поэтому решил немножко потрудиться на благо публики и расписать подробнее. Актуально это решение в первую очередь для нетиповых конфигураций или подсистем, имеющихся в нашем распоряжении.
Без регистров сведений сегодня сложно представить какую-либо конфигурацию. Эта довольно несложная для понимания группа метаданных одновременно представляет собой мощное средство для решения возникающих у 1С-ника задач. Реквизиты компаний имеют свойство иногда меняться? – смотрим в сторону Регистров сведений. Хотим учитывать подходящую к оборудованию номенклатуру запчастей? Снова к регистрам сведений. И не предлагайте табличные части, ведь менеджер, который закупает запчасти, тоже захочет оценить куда они подходят, когда сообразит, что ему это весьма полезно. Вот тогда с табличной частью-то и намучаемся.
Есть и менее очевидные вещи – если пересадить в 1С фанатичных любителей Excel, независимо от того добровольно для них это было или нет, очень быстро появляются те, кому не нравится для редактирования документов открывать их в отдельной форме. Помучавшись с чтением / записью этих документов при активизации строки скоро начинаешь понимать – а ведь проще работая с такими господами ничего кроме номера, даты и пары реквизитов, которые в здравом уме после его создания никто не соберется править, в самом документе не иметь (о документе говорим нестандартном, конечно же) а всё, что господа там дозаполняют по 20 раз на день вынести все в тот же регистр сведений. Ну а если господа выдумали некую группу показателей, которую даже теоретически должны видеть только три человека, в то время как все остальные – половина пользователей, сами Боги велели вынести эти показатели в отдельную табличку, и естественно это будет регистр сведений.
Еще одно из решений, связанных с использованием регистров сведений, к которому пришел я (и вполне допускаю, что и еще много кто), причем задолго до появления таких технологий, как расширения, это вынесение в них нетиповой информации вместо добавления реквизитов или табличных частей к основным объектам. В свое время даже делал публикацию публикацию на эту тему.
Скрывать нечего, в моем случае наиболее богатым на всяческие дополняющие таблички оказался справочник номенклатуры. Помимо уже имеющихся из коробки УПП, касающихся его регистров сведений, добавлены еще несколько своих. Информация, хранимая в них, поделена на логически законченные блоки: один регистр хранит параметры, которые имеют значение при планировании закупок запчастей и материалов для ремонта оборудования, другой – сведения о размерах упаковок продукции предприятия, третий – необходимые для интеграции с головными предприятием параметры ну и т.д. У каждой подобной таблицы свой круг пользователей, которых интересует их участок, но соседний для них что-то слишком заумное и «лишнее». Естественно, что «лишнее» нужно прятать, а еще лучше вообще ограничить к нему доступ. Группировка данных в регистры сведений «по тематике» тут оказывается очень кстати. Возьмем, к примеру, такие:
Вызывается это так:
Основных процедур получилось четыре: ПрочитатьНаборЗаписейРС, ЗаписатьНаборЗаписейРС, ПрочитатьМенеджерЗаписиРС, ЗаписатьМенеджерЗаписейРС с почти идентичными параметрами:
Теперь получается много удобнее и быстрее. Больше не нужно расписывать очередной регистр, интегрируя его на форму, пару строк и все, что нужно прочитано и в нужный момент записано. Справедливости ради, должен заметить, что покрывая 99% подобных задач, всеобщей панацеей это решение все-таки не является. Исключением будут те редкие случаи, когда в редактировании одного и того же объекта одновременно участвуют несколько пользователей. В таком режиме остается место для ситуации, когда один из пользователей открывает объект и долго-нудно его поправляет. В это время второй открывает, быстро вносит свою лепту и сохраняет. Когда же первый заканчивает, он записывает свою версию, в том числе затерев то, что сделал его коллега. Вероятность такой ситуации всегда нужно учитывать. Если в нашей номенклатуре она нулевая, то в гипотетической системе управления задачами она вполне реальна. На те случаи выход тоже есть и заключается в использовании динамических списков с отборами, но это уже отдельная история со своей спецификой и своими подводными камнями.
Как создать табличку регистра с отбором в справочнике или документе на управляемой форме
Решение задачи на самом деле очень простое, нам нужно в самой форме, на вкладке «Командный интерфейс» поставить галочку Автовидимость и видимость. Тогда с лева на форме у нас появится ссылка на наш регистр с уже готовым отбором.
НО! А что если нужно это все дело организовать другим способом, например на форме поставить табличку, и что бы можно было прямо от туда добавлять записи в регистр. Тогда:
1. На форме на панели реквизитов добавляем новый реквизит с типом: «ДинамическийСписок».
2. Выбираем тип основной таблицы с нашем регистром например.
3. Размещаете токшо созданый реквизит на форму.
4. Прописать сам отбор в событии формы «ПриСозданииНаСервере»:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
НовыйЭлемент = Водители.Отбор.Элементы.Добавить(Тип(«ЭлементОтбораКомпоновкиДанных»));
НовыйЭлемент.Использование = Истина;
НовыйЭлемент.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(«ТранспортноеСредство»);
НовыйЭлемент.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
НовыйЭлемент.ПравоеЗначение = Объект.Ссылка;
Все. Можно конечно сделать и другим образом, еще одмин вариантом, указать в нашем динамическом списке произвольный запрос, и при создании на сервере все ровно указать значение параметра запроса, но таким образом при добавлении новой записи в регистр прийдется заново указовать все параметры.