Получить значение реквизита справочника
Автор ab30ru, 27 июл 2017, 19:08
0 Пользователей и 1 гость просматривают эту тему.
Здравствуйте. Есть справочник Книги. В нем реквизит ИнвентарныйНомер. Есть документ ВыдачаКниг реквизит Книга ссылка на справочник Книги. Нужно чтобы при выборе книги в переменную НомерКниги записывался инвентарный номер из справочника. Помогите пожалуйста с кодом
Цитата: ab30ru от 27 июл 2017, 19:08Нужно чтобы при выборе книги в переменную НомерКниги записывался инвентарный номер из справочника
Я правильно понял? В форме документа?
&НаКлиенте
Процедура КнигаПриИзменении(Элемент)
НомерКниги = ПолучитьНомер(Объект.Книга);
КонецПроцедуры
&НаСервере
Функция ПолучитьНомер(Книга)
Возврат Книга.ИнвентарныйНомер
КонецФункции
Спасибо за Сказать спасибо
Цитата: ab30ru от 27 июл 2017, 19:08
Здравствуйте. Есть справочник Книги. В нем реквизит ИнвентарныйНомер. Есть документ ВыдачаКниг реквизит Книга ссылка на справочник Книги. Нужно чтобы при выборе книги в переменную НомерКниги записывался инвентарный номер из справочника. Помогите пожалуйста с кодом
Если ЗначениеЗаполнено(Объект.ВыдачаКниг) Тогда
Объект.НомерКниги = Объект.ВыдачаКниг.ИнвентарныйНомер;
Иначе
Объект.НомерКниги = "";
КонецЕсли;
Прописать при изменение реквизита Книга
Помог, нажми спасибо. Не помог, нажми спасибо
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google
Все верно, только проверь на
ЗначениеЗаполнено(Объект.Книга)
, и функцию выполняй
&НаСервереБезКонтекста
_))
0 / 0 / 0 Регистрация: 29.05.2014 Сообщений: 3 |
|
1 |
|
1C 8.x (тонкий) Получение значения реквизита справочника в документ29.05.2014, 12:17. Показов 64908. Ответов 22
Добрый день, есть вопрос Есть справочник Сотрудники, реквизиты «Должность», «Дата рождения» Есть документ в нем табличная часть «Налоги» и его реквизиты «ФИО» «Должность» «ДатаРождения» если просто ссылаться через форму на значения справочника то в документе выводится визуально и ДатаРождения, и Должность, но на печати эти поля пустые и при установке условий они ни как не считываются, а как будто пустые Прошу в поиск не посылать, т.к. пробывал уже много вариантов в т.ч. программно через функции платформа 8.2
0 |
GreenkA 3051 / 1998 / 524 Регистрация: 25.06.2009 Сообщений: 6,964 |
||||
29.05.2014, 12:34 |
2 |
|||
Mujinin, пропишите заполнение этих полей при изменении ФИО. Какая форма? Если управляемая, то значения получать придется на клиенте. Иначе — можно все в одной процедуре.
2 |
Mujinin 0 / 0 / 0 Регистрация: 29.05.2014 Сообщений: 3 |
||||
29.05.2014, 12:41 [ТС] |
3 |
|||
о мой спаситель….почему мне раньше этого никто не мог подсказать….я начал пол года назад и все время обходил это автозаполнение. делал все тоже самое только «ФИО» в
не выставлял
0 |
Anmut 0 / 0 / 0 Регистрация: 27.08.2015 Сообщений: 12 |
||||
27.08.2015, 09:09 |
4 |
|||
Не подскажите, а как сделать все тоже самое, но только у меня это не строки в ТЧ а реквизиты дока.
0 |
SonicQ 286 / 186 / 18 Регистрация: 20.02.2012 Сообщений: 925 |
||||
27.08.2015, 10:12 |
5 |
|||
Anmut, я бы лучше изменял реквизиты объекта на сервере. Думаю так будет правильнее
1 |
340 / 315 / 43 Регистрация: 20.08.2014 Сообщений: 1,242 Записей в блоге: 1 |
|
27.08.2015, 15:06 |
6 |
Думаю так будет правильнее нет не правильнее и ведет к снижению производительности. Вы туда сю форму спакуете и отправите, добавите и потом все это полетит назад по сети. Лучше серверный вызов делать в один раз, получать маленькие данные и заполнить на клиенте. Т.к. объет на форме уже заблокирован вами.
0 |
286 / 186 / 18 Регистрация: 20.02.2012 Сообщений: 925 |
|
27.08.2015, 17:28 |
7 |
1c-k,
0 |
286 / 186 / 18 Регистрация: 20.02.2012 Сообщений: 925 |
|
27.08.2015, 17:41 |
8 |
1c-k, бесспорно, вариант с объект.Реквизит = на клиенте быстрее…. Миниатюры
1 |
1c-k 340 / 315 / 43 Регистрация: 20.08.2014 Сообщений: 1,242 Записей в блоге: 1 |
||||
27.08.2015, 17:43 |
9 |
|||
SonicQ, это с чего такие выводы?
Добавлено через 1 минуту
Но зачастую нужно не просто изменить один объект… за код ниже от меня программеры получают нагоняй.
1 |
286 / 186 / 18 Регистрация: 20.02.2012 Сообщений: 925 |
|
27.08.2015, 17:45 |
10 |
1c-k, а клиент при этом плачет, что при заполнении одного реквизита все остальные не заполнились автоматом…
1 |
340 / 315 / 43 Регистрация: 20.08.2014 Сообщений: 1,242 Записей в блоге: 1 |
|
27.08.2015, 17:47 |
11 |
SonicQ, ахахаха. Срочно учить матчасть вызовов в управляемом приложении и что и как там происходит с контекстами. Добавлено через 1 минуту
1 |
286 / 186 / 18 Регистрация: 20.02.2012 Сообщений: 925 |
|
27.08.2015, 17:48 |
12 |
1c-k, я специально для примера так сделал
1 |
340 / 315 / 43 Регистрация: 20.08.2014 Сообщений: 1,242 Записей в блоге: 1 |
|
27.08.2015, 17:50 |
13 |
SonicQ, этот пример как грится делают все программеры которые переходят с обычного приложения в управляемое.
1 |
SonicQ 286 / 186 / 18 Регистрация: 20.02.2012 Сообщений: 925 |
||||||||
27.08.2015, 17:58 |
14 |
|||||||
1c-k, однако именно
реализовано в типовых конфигурациях, только там продолжения типа
1 |
340 / 315 / 43 Регистрация: 20.08.2014 Сообщений: 1,242 Записей в блоге: 1 |
|
27.08.2015, 18:05 |
15 |
SonicQ, однако надо давать себе отчёт, почему и что в типовых конфигурациях сделано. Добавлено через 45 секунд
1 |
286 / 186 / 18 Регистрация: 20.02.2012 Сообщений: 925 |
|
27.08.2015, 18:09 |
16 |
1c-k, палка двух концов =)
1 |
340 / 315 / 43 Регистрация: 20.08.2014 Сообщений: 1,242 Записей в блоге: 1 |
|
27.08.2015, 18:19 |
17 |
SonicQ, нет. Тут надо подходить из разумности вызовов, дёрганья сервера, и т.п.
1 |
0 / 0 / 0 Регистрация: 27.08.2015 Сообщений: 12 |
|
28.08.2015, 11:32 |
18 |
Читаю переписку «ассов» и чувствую себя полнейшим дураком в этих вопросах))). Я в програмировании 1с еще, если можно так сказать, новорожденный. Делаю себе индивидуальную конфу «с нуля» и понимаю, если бы вы ее увидели, то сто пудов я бы выслушал кучу слов не входящих в словарь русского языка.)))).
0 |
1c-k 340 / 315 / 43 Регистрация: 20.08.2014 Сообщений: 1,242 Записей в блоге: 1 |
||||
28.08.2015, 11:34 |
19 |
|||
Подскажите, пожалуйста, так правильно будет?
Это как вариант. Увидел бы написал как надо.
1 |
Anmut 0 / 0 / 0 Регистрация: 27.08.2015 Сообщений: 12 |
||||
28.08.2015, 11:44 |
20 |
|||
Спасибо огромное!!! сделал!!!
Добавлено через 2 минуты
0 |
Получение значений реквизита формы справочника |
Я |
01.09.16 — 09:02
Добрый день . Может кто подскажет . Есть справочник например сотрудники в ЗУП 8.3. форма управляемая . У этого справочника есть «формаэлемента» Например на «формеэлемента» есть не основной реквизит формы «датаприема»(тип дата) Как получить значение реквизита формы справочника для конкретного элемента справочника и как записать в него значение ? Спасибо
1 — 01.09.16 — 09:04
Объект.ДатаПриема =
2 — 01.09.16 — 09:04
Объект
3 — 01.09.16 — 09:47
(0) Посмотреть, откуда форма его заполняет при чтении данных. Вангую, что из какого-то регистра
4 — 01.09.16 — 11:12
извините я наверное не догоняю например в обработке написал
в модуле формы
&НаСервере
Процедура А4()
Справочники.Сотрудники.НайтиПоНаименованию(«Иванов»);
об= спр.ПолучитьОбъект();
об.Датаприема;
КонецПроцедуры
Ругается — я так понимаю что «датаприема» это реквизит конкретной формы (ФормаЭлемента) ,а форм у справочника сотрудникимного разных, т.е. вначале наверное надо получить именно «формуэлемента» ?
5 — 01.09.16 — 11:14
открой формуэлемента и поищи в модуле формы датаприема.
ищи что-то вида датаприема = получитьдатуприема(четотам) или заполнитьреквизитыформы(этаформа)
6 — 01.09.16 — 11:15
спр= Справочники.Сотрудники.НайтиПоНаименованию(«Цюкало»);
об= спр.ПолучитьОбъект();
ф=об.ПолучитьФорму(«ФормаЭлемента») ;
ф.датаприема;
все равно ругается на датаприема
7 — 01.09.16 — 11:20
(6) открой формуэлемента ручками в конфигураторе.
8 — 01.09.16 — 11:21
открыл форму элемента
9 — 01.09.16 — 11:22
(8) поищи в модуле формы датаприема
10 — 01.09.16 — 11:22
&НаСервере
Процедура А4()
спр= Справочники.Сотрудники.НайтиПоНаименованию(«Цюкало»);
об= спр.ПолучитьОбъект();
ф=об.ПолучитьФорму(«ФормаЭлемента») ;
дд=ф.РеквизитФормыВЗначение(«датаприема»);
пишет интерактивные операции не доступны
11 — 01.09.16 — 11:23
(10) на сервере не доступны
12 — 01.09.16 — 11:25
сложно посмотреть модуль и узнать как реквизит заполняется на этой форме
13 — 01.09.16 — 11:25
&НаКлиенте
Процедура ВидЗанятостиПриИзменении(Элемент)
СотрудникиКлиент.ПроверитьКонфликтыВидаЗанятостиССуществующимиСотрудниками(Сотрудник.Ссылка, Сотрудник.ФизическоеЛицо, ТекущаяОрганизация, Сотрудник.ВидЗанятости, ДатаПриема);
КонецПроцедуры
поискал дата приема в модуле формы элемента -вот единственное место где есть «датаприема»
14 — 01.09.16 — 11:26
а в какой процедуре смотреть ? призаписи или присоздании насервере ? там вроде нет в этом тоже проблема не могу понять как реквизит формы заполняется
15 — 01.09.16 — 11:26
Копай При создании, при чтении, при открытии
может через общий модуль заполняется
16 — 01.09.16 — 11:26
(13) явно не первое место где он используется.
ищи что-то вида датаприема = получитьдатуприема(четотам) или заполнитьреквизитыформы(этаформа)
(14) когда поймешь, тогда и решение само собой придет.
17 — 01.09.16 — 11:28
точку останова
можешь по строчкам пробежаться и увидеть в какой строке она заполняется
18 — 01.09.16 — 11:28
Суть в том, что тебе надо получить значений этого реквизита не из формы, а найти алгоритм, который заполняет твой реквизит и потом использовать его у себя в обработке или где ты там хочешь
19 — 01.09.16 — 11:32
(18) а почему я не могу получить значение реквизита из формы ? я как раз так бы и хотел а не искать каждый раз место и алгоритм его заполнения ?
или 1с так не позволяет ?
20 — 01.09.16 — 11:36
(19) Как ты на сервере к форме обратишься? Ты вот свои усы же не в зеркале бреешь!
21 — 01.09.16 — 11:43
Каждый день появляется очередной дятел, которому надо вытащить значение реквизита формы. И каждый дятел начинает с того, что пытается получить форму на сервере. Ни у кого из них не получается, но они не сдаются…
22 — 01.09.16 — 11:47
и я не сдамся
23 — 01.09.16 — 11:48
говорят, скоро 1С выпустит новое революционное решение для мобильных девайсов СГК — система генерации кода. там можно будет по аналогии с СКД просто натыкивать на экране нужные места со словами «вот это хочу. и ещё вот здесь», а код обработки система сгенерирует сама.
24 — 01.09.16 — 11:49
(23) Интеграцию с какими платежными системами обещают?
25 — 01.09.16 — 11:49
(24) какими ещё системами? ты не понял. скоро для программирования не то, что клавиатура, мышь не понадобится
26 — 01.09.16 — 11:49
(23)
27 — 01.09.16 — 11:50
(23) Такая система уже есть, но она работает только во время действия эффекта ЛСД
28 — 01.09.16 — 11:50
+(25) а мозгов и так ни у кого нет
29 — 01.09.16 — 11:51
(25) Чо, даже карточку привязывать не надо будет?
30 — 01.09.16 — 11:55
(25) В линуксе заработало USB–устройство для ввода текста при помощи мыслей!
Комментарий:
Ура, товарищи! Наконец–то можно выкинуть клавиасиськи сиськи сиськи сисечки сисищи мягкие теплые сочные сисяндры сисяндрищи сисюльки сиськи сиськи блд палюсьь
31 — 01.09.16 — 11:56
(0)Реквизит формы рождается и живет ровно столько и форма. И если заполняется при открытии, значит есть какой-то источник заполнения(РС например или еще что-то)
32 — 01.09.16 — 12:02
а т.е. я не могу из формы получить реквизит формы ? я могу только посмотреть алгоритм заполнения и получить реквизит по этому алгоритму так чтоли ?
33 — 01.09.16 — 12:03
(31) ?
34 — 01.09.16 — 12:08
(32) следи внимательно за руками. есть вопрос: Как получить значение реквизита формы справочника для конкретного элемента справочника и как записать в него значение ? в этом вопросе ни разу нет слова «форма», это ты молодец. проходит ничтожное по историческим меркам время, и у автора вопроса появляется слово «форма». автор — приматЮ, автор ращмышляет, эволюционирует. это нормально. но почему он эволюционирует в обратную сторону?
35 — 01.09.16 — 12:08
мда, с «ни разу нет» я несколько перегнул
36 — 01.09.16 — 12:11
(32) Конечно, можешь из формы получить ее реквизит. Вот прям хоть сейчас. Только форму ты на сервере не видишь, но это просто досадное недоразумение. Но ты пытайся, не сдавайся!
37 — 01.09.16 — 12:13
(32) Ты лучше спроси себя, куда ты хочешь записать это новое значение? Подсказка — данные не хранятся в форме.
38 — 01.09.16 — 12:13
то что на сервере не вижу форму я понял , но вот как точно получить реквизит формы на клиенте пока до конца не понял
39 — 01.09.16 — 12:14
ещё раз подсказка: тебе не нужна форма
40 — 01.09.16 — 12:15
(38) Посмотреть, из каких данных значение попадает в реквизит формы и взять оттуда. Новое значение записывать туда же. Форма для этого тебе не нужна, от слова совсем.
41 — 01.09.16 — 12:16
(37) сначала хочу хоть получить значения реквизитов формы , а записать хм сам не знаю куда записать если например у реквизита датаприема -тип дата ? , вот если регистр тип у рекв то наверное просто в этот регистр
42 — 01.09.16 — 12:18
(41) Вот когда ты узнаешь, куда записать, то сразу поймёшь откуда брать
43 — 01.09.16 — 12:49
(41)у формысписка справ-ка сотрудники есть основной реквизит «список » в его св-х есть настройка списка там я вижу такой текст запроса
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТекущиеКадровыеДанныеСотрудников КАК ТекущиеКадровыеДанные ПО ДанныеДляПодбораСотрудников.ФизическоеЛицо = ТекущиеКадровыеДанные.ФизическоеЛицо И ДанныеДляПодбораСотрудников.Сотрудник = ТекущиеКадровыеДанные.Сотрудник
я так понял что по такому условию инфа попадает в форму справочника т.е. из регистра ТекущиеКадровыеДанныеСотрудников а в тексте запроса дальше есть ТекущиеКадровыеДанные.ДатаПриема,
сам реквизит формы датаприема это рекв типа «дата»
44 — 01.09.16 — 12:50
наверное ответ где то тут куда записать
45 — 01.09.16 — 13:12
превращение дятла в орла. первые секунды волшебства
yalanton
46 — 01.09.16 — 13:19
пока я вроде вижу что в реквизите формы действительно нет значения
например в справочнике в иодуле элемента формы я пишу код
&НаСервере
Процедура А()
Сообщить( РеквизитФормыВЗначение(«ГражданствоФизическихЛиц»));
КонецПроцедуры
ГражданствоФизическихЛиц-это реквизит формы типа регистр
процедура после выполнения сообщить пишет :РегистрСведенийМенеджерЗаписи.ГражданствоФизическихЛиц
т.е. конкретное значение не вернула например гражданство Россия
я только что то не пойму- что для получения значений реквизита формы каждый раз надо искать как этот реквизит заполняется -проще нельзя чтоли ?
Тема: Получение значения реквизита элемента из справочника в документ
-
17.05.2019, 09:54
#1
Гость форума
Получение значения реквизита элемента из справочника в документ
Доброго времени суток! У меня возникли некоторые трудности с получением значения реквизита из справочника в документ. Мне нужно, чтобы когда я в табличной части (документа) в реквизите «Номенклатура» выбирал какую-то номенклатуру, то в реквизит «Цена» табличной части, записывалась её цена из справочника. Для того, чтобы получить значение из справочника, как я понял, нужно создать функцию….А вот как прописать в функции то, что она должна возвращать цену какой-то номенклатуры?
В справочнике «Номенклатура» у меня хранятся книги. Через предопределённые данные я создал группы (Жанры книг) и в каждом из жанров находятся элементы (книги) с информацией об авторе и тд.
-
17.05.2019, 10:38
#2
Пришел за помощью
Re: Получение значения реквизита элемента из справочника в документ
Какая конфигурация? на какой платформе?
-
17.05.2019, 10:54
#3
Re: Получение значения реквизита элемента из справочника в документ
Сообщение от MasterLoma
Доброго времени суток! У меня возникли некоторые трудности с получением значения реквизита из справочника в документ. Мне нужно, чтобы когда я в табличной части (документа) в реквизите «Номенклатура» выбирал какую-то номенклатуру, то в реквизит «Цена» табличной части, записывалась её цена из справочника. Для того, чтобы получить значение из справочника, как я понял, нужно создать функцию….А вот как прописать в функции то, что она должна возвращать цену какой-то номенклатуры?
В справочнике «Номенклатура» у меня хранятся книги. Через предопределённые данные я создал группы (Жанры книг) и в каждом из жанров находятся элементы (книги) с информацией об авторе и тд.Цена — это реквизит справочника «Номенклатура»?
Тогда можно обращаться без функции: Цена=Номенклатура.Цена;
Это должно быть прописано в процедуре «ПриВыбореНоменклатуры», которая назначается колонке «Номенклатура»вашей табличной части
-
17.05.2019, 11:07
#4
Пришел за помощью
Re: Получение значения реквизита элемента из справочника в документ
на клиенте он заполняет табличную часть….. не обратиться он объектно!
-
17.05.2019, 11:10
#5
Пришел за помощью
Re: Получение значения реквизита элемента из справочника в документ
&НаКлиенте
**************
Для каждого стр из Объект.Товары Цикл /// к примеру, либо получать текущую строку табличной части
Цена =ВернутьЦену(стр.Номенклат� �ра);
**************************&НаСервере
Функция ВернутьЦену(Товар)
Если Не ЗНачениеЗаполнено(Товар) Тогда
Возврат 0;
КонецЕсли;Возврат Товар.Цена;
КонецФункции
-
Пользователь сказал cпасибо:
-
17.05.2019, 11:20
#6
Пришел за помощью
Re: Получение значения реквизита элемента из справочника в документ
Сообщение от Margofs
&НаКлиенте
**************
Для каждого стр из Объект.Товары Цикл /// к примеру, либо получать текущую строку табличной части
Цена =ВернутьЦену(стр.Номенклат� �ра);
**************************&НаСервере
Функция ВернутьЦену(Товар)
Если Не ЗНачениеЗаполнено(Товар) Тогда
Возврат 0;
КонецЕсли;Возврат Товар.Цена;
КонецФункциичасть
-
17.05.2019, 12:23
#7
Re: Получение значения реквизита элемента из справочника в документ
Сообщение от Margofs
&НаКлиенте
**************
Для каждого стр из Объект.Товары Цикл /// к примеру, либо получать текущую строку табличной части
Цена =ВернутьЦену(стр.Номенклат� �ра);
**************************&НаСервере
Функция ВернутьЦену(Товар)
Если Не ЗНачениеЗаполнено(Товар) Тогда
Возврат 0;
КонецЕсли;Возврат Товар.Цена;
КонецФункцииМожно так:
&НаКлиенте
Процедура ТабличнаяЧасть1Номенклату� �аПриИзменении(Элемент)
ТекущиеДанные = Элементы.ТабличнаяЧасть1.Т� �кущиеДанные;
УИ=ТекущиеДанные.Номенклат ура.УникальныйИдентификат� �р();
ТекущиеДанные.Цена=НайтиЦе ну(УИ);
КонецПроцедуры
&Насервере
Функция НайтиЦену(Реквизит)
ТекН=Справочники.Номенклат ура.ПолучитьСсылку(Реквизи т);
Возврат ТекН.Цена;КонецФункции
-
Пользователь сказал cпасибо:
-
17.05.2019, 14:03
#8
Гость форума
Re: Получение значения реквизита элемента из справочника в документ
Сообщение от Margofs
Какая конфигурация? на какой платформе?
1С:Предприятие 8.3, учебная версия (8.3.6.2014)
-
17.05.2019, 14:04
#9
Гость форума
Re: Получение значения реквизита элемента из справочника в документ
Сообщение от Margofs
&НаКлиенте
**************
Для каждого стр из Объект.Товары Цикл /// к примеру, либо получать текущую строку табличной части
Цена =ВернутьЦену(стр.Номенклат� �ра);
**************************&НаСервере
Функция ВернутьЦену(Товар)
Если Не ЗНачениеЗаполнено(Товар) Тогда
Возврат 0;
КонецЕсли;Возврат Товар.Цена;
КонецФункцииСпасибо попозже попробую таким образом сделать.
Похожие темы
-
Ответов: 16
Последнее сообщение: 24.03.2017, 10:41
-
Ответов: 0
Последнее сообщение: 14.01.2014, 12:53
-
Ответов: 1
Последнее сообщение: 24.04.2012, 13:36
-
Ответов: 0
Последнее сообщение: 28.01.2012, 12:20
-
Ответов: 4
Последнее сообщение: 11.11.2011, 08:35
Социальные закладки
Социальные закладки
Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
- BB коды Вкл.
- Смайлы Вкл.
- [IMG] код Вкл.
- [VIDEO] код Вкл.
- HTML код Выкл.
Правила форума
Имеется справочник «Контрагенты» и документ «ЗаписьНаТестДрайв».
«Контрагенты» имеет реквизиты: ФИО, «Паспортные данные», мобильный телефон.
Как мне при выборе клиента на форме документа «ЗаписьНаТестДрайв» заполнить автоматически поля ФИО, «Паспортные данные», мобильный телефон?
Я смог поставить ссылку на справочник, но как оттуда взять все данные, а не только имя?
задан 2 мая 2017 в 19:41
kot_mapku3kot_mapku3
1,1751 золотой знак13 серебряных знаков32 бронзовых знака
Двойной щелчок по полю ФИО (то, что выделено сейчас на скриншоте), откроется панель свойств, внизу ищем событие ПриИзменении, нажимаем на увеличительное стекло справа. Откроется модуль формы с заготовкой процедуры. Нам нужно написать в ней код, который заполнит нам нужные поля. Т.к. событие выполняется на клиенте, реквизиты других объектов (в данном случае элемента спр-ка Контрагенты) нам недоступны, поэтому мы должны написать функцию, выполняющуюся на сервере и вызвать её. В итоге будет вот так:
&НаКлиенте
Процедура ФИОПриИзменении(Элемент)
ЗаполнитьДанныеКонтрагентаНаСервере();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьДанныеКонтрагентаНаСервере()
Объект.СерияПаспорта = Объект.ФИО.СерияПаспорта;
Объект.НомерПаспорта = Объект.ФИО.НомерПаспорта;
// и так далее, все нужные поля
КонецПроцедуры
ответ дан 4 мая 2017 в 12:28
&НаСервере Процедура СозданиеИИзменениеЭлементовИГруппСправочникаНаСервере() /// Как создать новый элемент справочника в 1с 8.3, 8.2 // создадим новый элемент справочника Города // с именем Владивосток Владивосток = Справочники.Города.СоздатьЭлемент(); Владивосток.Наименование = "Владивосток"; Владивосток.Записать(); /// Как создать новую группу справочника в 1с 8.3, 8.2 // создадим новую группу справочника Города ГородаУМоря = Справочники.Города.СоздатьГруппу(); ГородаУМоря.Наименование = "Города у моря"; ГородаУМоря.Записать(); /// Как перенести элемент справочника в другую группу в 1с 8.3, 8.2 // перенесём созданный Владивосток в группу "Города у моря" Владивосток.Родитель = ГородаУМоря.Ссылка; Владивосток.Записать(); /// Как внести изменения в элемент справочника по ссылке /// в 1с 8.3, 8.2 // найдём город Калькутта КалькуттаСсылка = Справочники.Города.НайтиПоНаименованию("Калькутта"); Если Не КалькуттаСсылка.Пустая() Тогда // изменим и запишем численность жителей в городе Калькутта = КалькуттаСсылка.ПолучитьОбъект(); Калькутта.Численность = 1000000; Калькутта.Записать(); КонецЕсли; /// Как получить и проверить пустую ссылку типа справочник в 1с 8.3, 8.2 ПустаяСсылка = Справочники.Города.ПустаяСсылка(); Если ПустаяСсылка.Пустая() Тогда Сообщить("Ссылка действительно пустая."); КонецЕсли; /// Как узнать принадлежность элемента справочника группе /// с учетом уровней иерархии в 1с 8.3, 8.2 ПермьСсылка = Справочники.Города.НайтиПоНаименованию("Пермь"); РоссияСсылка = Справочники.Города.НайтиПоНаименованию("Россия"); // проверим принадлежит ли город Пермь группе Россия Если ПермьСсылка.ПринадлежитЭлементу(РоссияСсылка) Тогда Сообщить("Элемент Пермь находится в группе Россия."); КонецЕсли; /// Как скопировать существующий элемент справочника в 1с 8.3, 8.2 // скопируем элемент Пермь КопияПерми = ПермьСсылка.Скопировать(); КопияПерми.Наименование = КопияПерми.Наименование + " КОПИЯ"; КопияПерми.УстановитьНовыйКод(); КопияПерми.Записать(); /// Как выяснить уровень вложенности элемента справочника /// в 1с 8.3, 8.2 Сообщить(КопияПерми.Уровень()); // 1 /// Как заблокировать элемент справочника перед изменениями /// в 1с 8.3, 8.2 // выполним блокировку элемента справочника // от изменения другими режимами или пользователями Пермь = ПермьСсылка.ПолучитьОбъект(); Если Не Пермь.Заблокирован() Тогда Пермь.Заблокировать(); // тут идёт какой-то долгий алгоритм // в результате которого мы меняем // заблокированный элемент Пермь.Численность = 5000; Пермь.Записать(); // и только потом освобождаем его // для других режимов и пользователей Пермь.Разблокировать(); КонецЕсли; /// Как заполнить новый элемент справочника на основании /// в 1с 8.3, 8.2 // в модуле справочника Города я определил процедуру // ОбработкаЗаполнения, которая обрабатывает ситуации // когда мы заполняем один элемент на основании // данных другого (см. в базе для скачивания) Хабаровск = Справочники.Города.СоздатьЭлемент(); Хабаровск.Заполнить( Справочники.Города.НайтиПоНаименованию("Рио-де-Жанейро") ); Хабаровск.Наименование = "Хабаровск"; Хабаровск.Записать(); /// Как пометить на удаление элемент справочника в 1с 8.3, 8.2 // пометим на удаление только что созданный Хабаровск Хабаровск.УстановитьПометкуУдаления( Истина, // пометка удаления Ложь // включая подчиненные (если речь о группе справочника) ); // метод Записать вызывать не нужно КонецПроцедуры &НаСервереБезКонтекста Функция ПолучитьКлиентаПоИмени(Имя) Возврат Справочники.Клиенты.НайтиПоНаименованию(Имя); КонецФункции /// Как открыть форму существующего элемента справочника /// по ссылке в 1с 8.3, 8.2 &НаКлиенте Процедура КакОткрытьФормуСуществующегоЭлементаСправочника(Команда) СсылкаНаЭлемент = ПолучитьКлиентаПоИмени("Андрей"); ПараметрыФормы = Новый Структура("Ключ", СсылкаНаЭлемент); ОткрытьФорму( "Справочник.Клиенты.ФормаОбъекта", // имя формы ПараметрыФормы // параметры для формы ); КонецПроцедуры /// Как открыть форму существующей группы справочника /// по ссылке в 1с 8.3, 8.2 &НаКлиенте Процедура КакОткрытьФормуСуществующейГруппыСправочника(Команда) СсылкаНаГруппу = ПолучитьКлиентаПоИмени("Vip"); ПараметрыФормы = Новый Структура("Ключ", СсылкаНаГруппу); ОткрытьФорму( "Справочник.Клиенты.ФормаГруппы", // имя формы ПараметрыФормы // параметры для формы ); КонецПроцедуры /// Как открыть форму выбора элемента справочника и /// отследить её закрытие в 1с 8.3, 8.2 &НаКлиенте Процедура КакОткрытьФормуВыбораЭлементаСправочника(Команда) ОповещениеОЗакрытии = Новый ОписаниеОповещения("ПослеВыбораЭлемента", ЭтотОбъект); ОткрытьФорму( "Справочник.Клиенты.ФормаВыбора",,,,,,ОповещениеОЗакрытии ); КонецПроцедуры &НаКлиенте Процедура ПослеВыбораЭлемента(Результат, Параметры) Экспорт Если Результат <> Неопределено Тогда Сообщить("Был выбран элемент " + Результат); КонецЕсли; КонецПроцедуры /// Как открыть форму выбора группы справочника и /// отследить её закрытие в 1с 8.3, 8.2 &НаКлиенте Процедура КакОткрытьФормуВыбораГруппыСправочника(Команда) ОповещениеОЗакрытии = Новый ОписаниеОповещения("ПослеВыбораГруппы", ЭтотОбъект); ОткрытьФорму( "Справочник.Клиенты.ФормаВыбораГруппы",,,,,,ОповещениеОЗакрытии ); КонецПроцедуры &НаКлиенте Процедура ПослеВыбораГруппы(Результат, Параметры) Экспорт Если Результат <> Неопределено Тогда Сообщить("Была выбрана группа " + Результат); КонецЕсли; КонецПроцедуры /// Как открыть форму списка справочника и /// установить отбор по реквизиту в 1с 8.3, 8.2 &НаКлиенте Процедура КакОткрытьФормаСпискаСправочникаСОтбором(Команда) // откроем список клиентов, оставив // только мужчин ПараметрыОтбора = Новый Структура; ПараметрыОтбора.Вставить("Пол", ПолучитьПеречислениеМужской()); ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("Отбор", ПараметрыОтбора); ОткрытьФорму( "Справочник.Клиенты.ФормаСписка", ПараметрыФормы ); КонецПроцедуры &НаСервереБезКонтекста Функция ПолучитьПеречислениеМужской() Возврат Перечисления.Пол.Мужской; КонецФункции /// Как открыть форму списка справочника с нужным отображением /// в 1с 8.3, 8.2 &НаКлиенте Процедура КакОткрытьФормуСпискаСправочникаСНужнымОтображением(Команда) // откроем список клиентов с отображением "Список" ФормаСписка = ПолучитьФорму("Справочник.Клиенты.ФормаСписка"); ФормаСписка.Открыть(); ФормаСписка.Элементы.Список.Отображение = ОтображениеТаблицы.Список; КонецПроцедуры /// Как открыть форму только что созданного, но ещё /// не записанного элемента справочника в 1с 8.3, 8.2 &НаКлиенте Процедура КакОткрытьФормуНовогоНеЗаписанногоСправочника(Команда) // получаем форму нового справочника ФормаНовогоСправочника = ПолучитьФорму( "Справочник.Еда.ФормаОбъекта",,, Истина); // делаем копию её данных (так как напрямую их менять // нельзя) КопияДанныхФормы = ФормаНовогоСправочника.Объект; // заполняем эти данные на сервере ЗаполнитьДанныеФормыНаСервере(КопияДанныхФормы); // копируем заполненные данные в исходную форму КопироватьДанныеФормы(КопияДанныхФормы, ФормаНовогоСправочника.Объект); // показываем форму нового заполненного // элемента справочника пользователю ФормаНовогоСправочника.Открыть(); КонецПроцедуры &НаСервере Процедура ЗаполнитьДанныеФормыНаСервере(ДанныеФормы) // преобразуем данные формы в документ Еда = ДанныеФормыВЗначение(ДанныеФормы, Тип("СправочникОбъект.Еда")); Еда.Наименование = "Груша"; Еда.Калорийность = 500; // преобразуем документа обратно в данные формы ЗначениеВДанныеФормы(Еда, ДанныеФормы); КонецПроцедуры /// Скачать и выполнить эти примеры на компьютере
- Как создать элемент (группу) справочника?
- Как найти элемент справочника?
- Как удалить элемент справочника?
- Как перебрать элементы справочника?
- Как выбрать все элементы из определенной группы?
- Как перебрать элементы подчиненного справочника с помощью запроса?
- Как перебрать элементы подчиненного справочника с помощью выборки справочника?
- Как открыть форму списка (элемента) справочника?
- Как добавить запись в табличную часть элемента справочника?
- Как удалить строки из табличной части справочника?
- Как перебрать строки табличной части справочника?
- Как создать элемент в нужной группе?
- Как узнать, есть ли у текущего элемента подчиненные?
- Как узнать количество подчиненных элементов у выбранного элемента справочника?
- Как узнать количество подчиненных элементов у выбранного элемента справочника, если подчиненных справочников нексолько?
- Как получить всех родителей выбранного элемента справочника?
- Как получить запросом «полный» код элементов справочника, если тип кода — Строка?
- Как получить все элементы справочника, содержащие в наименовании определенную подстроку, со всей иерархией, в которую они входят?
- Как найти все элементы справочника, в которых не заполнен строковый реквизит?
- Как перенести все элементы справочника «Контрагенты» из одной группы в другую?
- Как организовать программный выбор элемента справочника?
- Как сохранить фотографию сотрудника в справочнике «Сотрудники»?
Как создать элемент (группу) справочника?
НовыйЭлемент = Справочники.ДокументыУдостоверяющиеЛичность.СоздатьЭлемент(); НовыйЭлемент.Наименование = "военный билет"; // Установить другие реквизиты. // ..... НовыйЭлемент.Записать(); НовыйЭлемент = Справочники.Банки.СоздатьЭлемент(); // Получить ссылку на группу, в которой будет находиться новый элемент Родитель = Справочники.Банки.НайтиПоКоду("000000001"); НовыйЭлемент.Наименование = "АКБ"; НовыйЭлемент.Код = "000000011"; НовыйЭлемент.Родитель = Родитель; // Установить другие реквизиты // ..... НовыйЭлемент.Записать(); НоваяГруппа = Справочники.Номенклатура.СоздатьГруппу(); // Получить ссылку на группу, в которой должна находиться создаваемая группа Родитель = Справочники.Номенклатура.НайтиПоНаименованию("Обувь", Истина); НоваяГруппа.Наименование = "Модельная обувь"; НоваяГруппа.Родитель = Родитель; // Установить другие реквизиты // ..... НоваяГруппа.Записать(); // Создать новый элемент в корне справочника НовыйЭлемент = Справочники.Подразделения.СоздатьЭлемент(); НовыйЭлемент.Наименование = "IT отдел"; НовыйЭлемент.Записать(); // Получить ссылку на родителя для добавляемых элементов Родитель = НовыйЭлемент.Ссылка; // Создать дочерний элемент. НовыйЭлемент = Справочники.Подразделения.СоздатьЭлемент(); НовыйЭлемент.Наименование = "Группа разработки"; НовыйЭлемент.Родитель = Родитель; НовыйЭлемент.Записать();
Как найти элемент справочника?
// Поиск по коду РезультатПоиска = Справочники.Номенклатура.НайтиПоКоду("00030"); Если РезультатПоиска.Пустая() Тогда // Выполнить действия, предусмотренные в случае, когда элемент не найден. КонецЕсли; // Поиск по наименованию РезультатПоиска = Справочники.Номенклатура.НайтиПоНаименованию("Кроссовки"); // Поиск по реквизиту РезультатПоиска = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", "К-120002");
Как удалить элемент справочника?
// Найти ссылки на удаляемый элемент. МассивСсылок = Новый Массив; МассивСсылок.Добавить(СсылкаНаУдаляемыйЭлемент); НайденныеСсылки = НайтиПоСсылкам(МассивСсылок); Если НайденныеСсылки.Количество() > 0 Тогда Сообщить("Нельзя удалять элемент, на него имеются ссылки"); Иначе УдаляемыйЭлемент = СсылкаНаУдаляемыйЭлемент.ПолучитьОбъект(); УдаляемыйЭлемент.Удалить(); КонецЕсли; УдаляемыйЭлемент.УстановитьПометкуУдаления(Истина);
Как перебрать элементы справочника?
Выборка = Справочники.Номенклатура.ВыбратьИерархически(); Пока Выборка.Следующий() Цикл Наименование = Выборка.Наименование; // Обращение к другим данным справочника // ..... КонецЦикла; Запрос = Новый Запрос( "ВЫБРАТЬ | Ссылка, | Наименование |ИЗ | Справочник.Номенклатура |АВТОУПОРЯДОЧИВАНИЕ" ); Результат = Запрос.Выполнить().Выбрать(); Пока Результат.Следующий() Цикл Наименование = Результат.Наименование; КонецЦикла;
Как выбрать все элементы из определенной группы?
Выборка = Справочники.Номенклатура.Выбрать(ПолеВводаРодитель); Пока Выборка.Следующий() Цикл Наименование = Выборка.Наименование; КонецЦикла; Запрос = Новый Запрос( "ВЫБРАТЬ | Ссылка, | Наименование |ИЗ | Справочник.Номенклатура |ГДЕ | Родитель = &Родитель |АВТОУПОРЯДОЧИВАНИЕ" ); Запрос.УстановитьПараметр("Родитель", ПолеВводаРодитель); Результат = Запрос.Выполнить().Выбрать(); Пока Результат.Следующий() Цикл Наименование = Результат.Наименование; КонецЦикла; Выборка=Справочники.Номенклатура.ВыбратьИерархически(ПолеВводаРодитель); Пока Выборка.Следующий() Цикл Наименование = Выборка.Наименование; КонецЦикла; Запрос = Новый Запрос( "ВЫБРАТЬ | Ссылка, | Наименование |ИЗ | Справочник.Номенклатура |ГДЕ | Родитель В ИЕРАРХИИ(&Родитель) |АВТОУПОРЯДОЧИВАНИЕ" ); Запрос.УстановитьПараметр("Родитель", ПолеВводаРодитель); Результат = Запрос.Выполнить().Выбрать(); Пока Результат.Следующий() Цикл Наименование = Результат.Наименование; КонецЦикла;
Как перебрать элементы подчиненного справочника с помощью запроса?
Процедура ПереборПодчиненыхЭлементов(Контрагент) Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ | КонтактныеЛица.Ссылка |ИЗ | Справочник.КонтактныеЛица КАК КонтактныеЛица |ГДЕ | КонтактныеЛица.Владелец = &Владелец"; Запрос.УстановитьПараметр("Владелец", Контрагент); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл ОчереднойПодчиненый = Выборка.Ссылка; КонецЦикла; КонецПроцедуры
Как перебрать элементы подчиненного справочника с помощью выборки справочника?
Процедура ПереборПодчиненыхЭлементов(Контрагент) // Получить выборку по указанному контрагенту Выборка = Справочники.КонтактныеЛица.Выбрать( , Контрагент); Пока Выборка.Следующий() Цикл ОчереднойПодчиненый = Выборка.Ссылка; КонецЦикла; КонецПроцедуры
Как открыть форму списка (элемента) справочника?
Форма = Справочники.Номенклатура.ПолучитьФормуСписка(); Форма.Открыть(); Элемент = Справочники.Номенклатура.НайтиПоКоду("00070"); Форма = Элемент.ПолучитьФорму(); Форма.Открыть();
Как добавить запись в табличную часть элемента справочника?
ЭлементОбъект = СсылкаКонтрагент.ПолучитьОбъект(); НоваяСтрока = ЭлементОбъект.ВидыДеятельности.Добавить(); // Заполнить реквизиты НоваяСтрока.ВидДеятельности = ПолеВводаВидДеятельности; // ..... ЭлементОбъект.Записать();
Как удалить строки из табличной части справочника?
ЭлементСправочника = Справочники.Контрагенты.НайтиПоКоду("Ю0006"); ОбъектСправочника = ЭлементСправочника.ПолучитьОбъект(); ОбъектСправочника.ВидыДеятельности.Очистить(); ОбъектСправочника.Записать(); ОбъектСправочника = ВыбранныйЭлемент.ПолучитьОбъект(); // Создать структуру для отбора удаляемых строк СтруктураОтбора = Новый Структура("ВидДеятельности", ВыбранныйВидДеятельности); // Получить массив удаляемых строк ПодходящиеСтроки = ОбъектСправочника.ВидыДеятельности.НайтиСтроки(СтруктураОтбора); // Удалить строки Для Каждого ОчереднаяСтрока Из ПодходящиеСтроки Цикл ОбъектСправочника.ВидыДеятельности.Удалить(ОчереднаяСтрока); КонецЦикла; ОбъектСправочника.Записать();
Как перебрать строки табличной части справочника?
ЭлементСправочника = Справочники.Контрагенты.НайтиПоКоду("Ю0006"); Для Каждого ТекущаяСтрока Из ЭлементСправочника.ВидыДеятельности Цикл Сообщить(ТекущаяСтрока.ВидДеятельности); КонецЦикла;
Как создать элемент в нужной группе?
КодГруппы = "330100"; ПоискПоПолномуКоду = Ложь; // значение по умолчанию Группа = Справочники.Номенклатура.НайтиПоКоду(КодГруппы, ПоискПоПолномуКоду); Если Группа.Пустая() Тогда Группа = Справочники.Номенклатура.СоздатьГруппу(); Группа.Код = КодГруппы; Группа.Наименование = "Загруженные"; Группа.Записать(); ИначеЕсли НЕ Группа.ЭтоГруппа Тогда Сообщить("Найден элемент справочника с указанным кодом!"); // Предусмотреть прерывание алгоритма... КонецЕсли; Спр = Справочники.Номенклатура.СоздатьЭлемент(); Спр.Наименование = "Программно созданный"; // Реквизиты заполняются в соответствии с задачей // ..... Спр.Родитель = Группа.Ссылка; Спр.Записать(); Группа = Справочники.Номенклатура.Загруженные; КодЭлемента = "330100"; ПоискПоПолномуКоду = Ложь; // Значение по умолчанию Родитель = Справочники.Номенклатура.НайтиПоКоду(КодЭлемента, ПоискПоПолномуКоду); Если Родитель.Пустая() Тогда Родитель = Справочники.Номенклатура.СоздатьЭлемент(); Родитель.Код = КодЭлемента; Родитель.Наименование = "Загруженные"; Родитель.Записать(); КонецЕсли; Спр = Справочники.Номенклатура.СоздатьЭлемент(); Спр.Наименование = "Программно созданный"; // Реквизиты заполняются в соответствии с задачей // ..... Спр.Родитель = Родитель.Ссылка; Спр.Записать();
Как узнать, есть ли у текущего элемента подчиненные?
Выборка = Справочники.Номенклатура.Выбрать( , Владелец); Если Выборка.Следующий() = Истина Тогда // Есть подчиненные элементы. КонецЕсли; Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 | ЕдиницыИзмерения.Ссылка |ИЗ | Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения |ГДЕ | ЕдиницыИзмерения.Владелец = &Владелец"; Запрос.УстановитьПараметр("Владелец", Владелец); Если НЕ Запрос.Выполнить().Пустой() Тогда // Есть подчиненные элементы! КонецЕсли;
Как узнать количество подчиненных элементов у выбранного элемента справочника?
Выборка = Справочники.ЕдиницыИзмерения.Выбрать( , Владелец); КоличествоЭлементов = 0; Пока Выборка.Следующий() Цикл КоличествоЭлементов = КоличествоЭлементов + 1; КонецЦикла; Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ | КОЛИЧЕСТВО(*) КАК КоличествоЗаписей |ИЗ | Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения |ГДЕ | ЕдиницыИзмерения.Владелец = &Владелец"; Запрос.УстановитьПараметр("Владелец", Владелец); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда КоличествоЗаписей = Выборка.КоличествоЗаписей; КонецЕсли;
Как узнать количество подчиненных элементов у выбранного элемента справочника, если подчиненных справочников несколько?
ВЫБРАТЬ СУММА(КоличествоПодчиненных) КАК КоличествоПодчиненныхЭлементов ИЗ (ВЫБРАТЬ КОЛИЧЕСТВО(*) КАК КоличествоПодчиненных ИЗ Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения ГДЕ ЕдиницыИзмерения.Владелец = &Владелец ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ КОЛИЧЕСТВО(*) ИЗ Справочник.СерииНоменклатуры КАК СерииНоменклатуры ГДЕ СерииНоменклатуры.Владелец = &Владелец ) КАК ВложенныйЗапрос
Как получить всех родителей выбранного элемента справочника?
МассивРодителей = Новый Массив; Родитель = СсылкаНаЭлемент.Родитель; Пока НЕ Родитель.Пустая() Цикл МассивРодителей.Добавить(Родитель); Родитель = Родитель.Родитель; КонецЦикла; Для Каждого ТекущийРодитель Из МассивРодителей Цикл // Работа с текущим родителем КонецЦикла;
ВЫБРАТЬ Номенклатура.Ссылка КАК Ссылка ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.Ссылка = &Ссылка ИТОГИ ПО Ссылка ТОЛЬКО ИЕРАРХИЯ
ТекущийЭлементНоменклатуры = ЭлементНоменклатура; Запрос = Новый Запрос( "ВЫБРАТЬ | Номенклатура.Родитель, | Номенклатура.Родитель.Родитель, | Номенклатура.Родитель.Родитель.Родитель, | Номенклатура.Родитель.Родитель.Родитель.Родитель, | Номенклатура.Родитель.Родитель.Родитель.Родитель.Родитель |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.Ссылка = &ТекущийЭлементНоменклатуры"; Пока Истина Цикл Запрос.УстановитьПараметр("ТекущийЭлементНоменклатуры", ТекущийЭлементНоменклатуры); Результат = Запрос.Выполнить(); Если Результат.Пустой() Тогда Прервать; КонецЕсли; Выборка = Результат.Выбрать(); Выборка.Следующий(); Для НомерКолонки = 0 По Результат.Колонки.Количество() - 1 Цикл ТекущийЭлементНоменклатуры = Выборка[НомерКолонки]; Если ТекущийЭлементНоменклатуры = Справочники.Номенклатура.ПустаяСсылка() Тогда Прервать; Иначе Сообщить(ТекущийЭлементНоменклатуры); КонецЕсли; КонецЦикла; Если ТекущийЭлементНоменклатуры = Справочники.Номенклатура.ПустаяСсылка() Тогда Прервать; КонецЕсли; КонецЦикла;
Как получить запросом «полный» код элементов справочника, если тип кода — Строка?
ВЫБРАТЬ Контрагенты.Ссылка, ВЫБОР КОГДА (Контрагенты.Родитель.Код ЕСТЬ NULL ) ТОГДА Контрагенты.Код КОГДА (Контрагенты.Родитель.Родитель.Код ЕСТЬ NULL ) ТОГДА Контрагенты.Родитель.Код + "/" + Контрагенты.Код ИНАЧЕ Контрагенты.Родитель.Родитель.Код + "/" + Контрагенты.Родитель.Код + "/" + Контрагенты.Код КОНЕЦ КАК ПолныйКод ИЗ Справочник.Контрагенты КАК Контрагенты
Как получить все элементы справочника, содержащие в наименовании определенную подстроку, со всей иерархией, в которую они входят?
Запрос = Новый Запрос( "ВЫБРАТЬ | Контрагенты.Ссылка КАК Ссылка |ИЗ | Справочник.Контрагенты КАК Контрагенты |ГДЕ | (Контрагенты.Наименование ПОДОБНО &ЧастьНаименования) И (НЕ Контрагенты.ЭтоГруппа) |ИТОГИ ПО | Ссылка ТОЛЬКО ИЕРАРХИЯ" ); Запрос.УстановитьПараметр("ЧастьНаименования", "%" + ПолеВводаПодстрока + "%");
Как найти все элементы справочника, в которых не заполнен строковый реквизит?
ВЫБРАТЬ ФизическиеЛица.Ссылка ИЗ Справочник.ФизическиеЛица КАК ФизическиеЛица ГДЕ (ФизическиеЛица.ИНН = "") ВЫБРАТЬ ФизическиеЛица.Ссылка ИЗ Справочник.ФизическиеЛица КАК ФизическиеЛица ГДЕ (ФизическиеЛица.СтраховойНомерПФР = "") ИЛИ (ФизическиеЛица.СтраховойНомерПФР = " - -")
Как перенести все элементы справочника «Контрагенты» из одной группы в другую?
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Контрагенты.Ссылка |ИЗ | Справочник.Контрагенты КАК Контрагенты |ГДЕ | Контрагенты.Родитель = &СтарыйРодитель"; Запрос.УстановитьПараметр("СтарыйРодитель", СтарыйРодитель); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл Контрагент = Выборка.Ссылка.ПолучитьОбъект(); Контрагент.Родитель = НовыйРодитель; Контрагент.Записать(); КонецЦикла;
Как организовать программный выбор элемента справочника?
// Получить форму выбора справочника как подчиненную форме документа ФормаВыбора = Справочники.Номенклатура.ПолучитьФормуВыбора( , ЭтаФорма); // Открыть полученную форму ФормаВыбора.Открыть(); Процедура ОбработкаВыбора(ЗначениеВыбора, Источник) ПолученноеЗначение = ЗначениеВыбора; // Дальнейшая обработка значения... КонецПроцедуры ФормаВыбора = Справочники.Номенклатура.ПолучитьФормуВыбора( , ЭтаФорма); Выбрано = ФормаВыбора.ОткрытьМодально(); Процедура ПолеВводаНачалоВыбора(Элемент, СтандартнаяОбработка) // Запретить стандартную обработку. СтандартнаяОбработка = Ложь; // Получить форму выбора справочника как подчиненную полю ввода ФормаВыбора = Справочники.Номенклатура.ПолучитьФормуВыбора( , Элемент); // Открыть полученную форму ФормаВыбора.Открыть(); КонецПроцедуры Процедура ПолеВводаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) // Отключить стандартную обработку (при необходимости) СтандартнаяОбработка = Ложь; ПолученноеЗначение = ВыбранноеЗначение; // Дальнейшая обработка значения... КонецПроцедуры
Как сохранить фотографию сотрудника в справочнике «Сотрудники»?
Процедура ЗагрузитьФотографию(Элемент) Режим = РежимДиалогаВыбораФайла.Открытие; ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим); ДиалогОткрытияФайла.ПолноеИмяФайла = ""; Фильтр = "Текст (*,*)|*.*"; ДиалогОткрытияФайла.Фильтр = Фильтр; ДиалогОткрытияФайла.МножественныйВыбор = Ложь; ДиалогОткрытияФайла.Заголовок = "Выберите картинку"; Если ДиалогОткрытияФайла.Выбрать() Тогда ВыбраннаяКартинка = Новый Картинка(ДиалогОткрытияФайла.ПолноеИмяФайла); ЭлементХранилища = Новый ХранилищеЗначения(ВыбраннаяКартинка); Фотография = ЭлементХранилища; КонецЕсли; КонецПроцедуры ВыбФайл = Новый ДвоичныеДанные(ДиалогОткрытияФайла.ПолноеИмяФайла); элХранилища = Новый ХранилищеЗначения(ВыбФайл); Фотография = элХранилища;