29.10.19 — 08:57
Добрый день! Подскажите пожалуйста вывести 2 доп реквизита в одну строку с контрагентом.
1 — 29.10.19 — 09:00
ПРЕДСТАВЛЕНИЕ(Контрагент)+(Контрагент.Комментарий)+ЕщеКакаятоСтрока
2 — 29.10.19 — 09:01
(0) Сразу из запроса в СКД
3 — 29.10.19 — 09:03
(2) см. (1)
4 — 29.10.19 — 09:05
(1) И давно в запросе можно ПРЕДСТАВЛЕНИЕ() складывать с чем-то?
5 — 29.10.19 — 09:06
Часть запроса
ВЫБРАТЬ
КонтрагентыДополнительныеРеквизиты.Ссылка КАК Контрагент,
КонтрагентыДополнительныеРеквизиты.Свойство КАК Свойство,
ВЫБОР
КОГДА КонтрагентыДополнительныеРеквизиты.Свойство.Наименование = «Основные виды расходов (Контрагенты)»
ТОГДА КонтрагентыДополнительныеРеквизиты.Значение
КОНЕЦ КАК ОсновныеВидыРасходов,
ВЫБОР
КОГДА КонтрагентыДополнительныеРеквизиты.Свойство.Наименование = «Наш контрагент (Контрагенты)»
ТОГДА КонтрагентыДополнительныеРеквизиты.Значение
КОНЕЦ КАК НашКонтрагент
ПОМЕСТИТЬ ДопРеквизиты
ИЗ
Справочник.Контрагенты.ДополнительныеРеквизиты КАК КонтрагентыДополнительныеРеквизиты
ГДЕ
(КонтрагентыДополнительныеРеквизиты.Свойство.Наименование = «Основные виды расходов (Контрагенты)»
ИЛИ КонтрагентыДополнительныеРеквизиты.Свойство.Наименование = «НашКонтрагент (Контрагенты)»)
;
6 — 29.10.19 — 09:09
1) Реквизит выводится в результат
2) Условие для рассчета в запросе
7 — 29.10.19 — 09:12
(4) Ого оказывается нельзя, даже обычные строки
По наитию T-SQL думал
8 — 29.10.19 — 09:13
(6) Сделай вычисляемое поле, в котором и складывай строки
9 — 29.10.19 — 09:13
(7)Здрасте, со строками-то что не так?
10 — 29.10.19 — 09:14
(5)Так не взлетит. Нужно сперва сделать усилие с применением соединения и вывести их хотя бы в одной строке.
11 — 29.10.19 — 09:17
(10) С соединением и есть вопрос. Подскажите пож
12 — 29.10.19 — 09:18
«ВЫБРАТЬ
| Контрагенты.Ссылка КАК Ссылка1,
| ЕСТЬNULL(взЗначения.Значение1, «»»») КАК Значение1,
| ЕСТЬNULL(взЗначения.Значение2, «»»») КАК Значение2
|ИЗ
| (ВЫБРАТЬ
| ВложенныйЗапрос.Ссылка КАК Ссылка,
| МАКСИМУМ(ВложенныйЗапрос.Значение1) КАК Значение1,
| МАКСИМУМ(ВложенныйЗапрос.Значение2) КАК Значение2
| ИЗ
| (ВЫБРАТЬ
| КонтрагентыДополнительныеРеквизиты.Ссылка КАК Ссылка,
| КонтрагентыДополнительныеРеквизиты.Значение КАК Значение1,
| 0 КАК Значение2
| ИЗ
| Справочник.Контрагенты.ДополнительныеРеквизиты КАК КонтрагентыДополнительныеРеквизиты
| ГДЕ
| КонтрагентыДополнительныеРеквизиты.Свойство = &Свойство1
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| КонтрагентыДополнительныеРеквизиты.Ссылка,
| 0,
| КонтрагентыДополнительныеРеквизиты.Значение
| ИЗ
| Справочник.Контрагенты.ДополнительныеРеквизиты КАК КонтрагентыДополнительныеРеквизиты
| ГДЕ
| КонтрагентыДополнительныеРеквизиты.Свойство = &Свойство2) КАК ВложенныйЗапрос
|
| СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Ссылка) КАК взЗначения
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
| ПО взЗначения.Ссылка = Контрагенты.Ссылка»
13 — 29.10.19 — 09:19
(11)Как-то так:
Выбрать контрагент из справочник левое соединение допсвойства по свойство=1… левое соединение допсвойства по свойство=2…
14 — 29.10.19 — 09:21
Спасибо!
15 — 29.10.19 — 11:10
(13) не получилось
16 — 29.10.19 — 11:11
только наплодил строк
17 — 29.10.19 — 11:12
не кидайтесь пож. тапками. Как выставить связи?
ВЫБРАТЬ
КонтрагентыДополнительныеРеквизиты.Ссылка КАК Контрагент,
ВЫБОР
КОГДА КонтрагентыДополнительныеРеквизиты.Свойство.Наименование = «Основные виды расхов (Контрагенты)»
ТОГДА КонтрагентыДополнительныеРеквизиты.Значение
КОНЕЦ КАК ОсновныеВидыРасходов,
ВЫБОР
КОГДА КонтрагентыДополнительныеРеквизиты.Свойство.Наименование = «Наш контрагент (Контрагенты)»
ТОГДА КонтрагентыДополнительныеРеквизиты.Значение
КОНЕЦ КАК НашКонтрагент,
КонтрагентыДополнительныеРеквизиты.Свойство.Наименование = «НашКонтрагент (Контрагенты)» КАК СвойствоНашКонтрагент,
КонтрагентыДополнительныеРеквизиты.Свойство КАК Свойство
ПОМЕСТИТЬ ДопРеквизиты
ИЗ
Справочник.Контрагенты.ДополнительныеРеквизиты КАК КонтрагентыДополнительныеРеквизиты
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
КонтрагентыДополнительныеРеквизиты.Ссылка КАК Ссылка,
ДопРеквизиты.НашКонтрагент КАК НашКонтрагент,
ДопРеквизиты.ОсновныеВидыРасходов КАК ОсновныеВидыРасходов
ИЗ
Справочник.Контрагенты.ДополнительныеРеквизиты КАК КонтрагентыДополнительныеРеквизиты
ЛЕВОЕ СОЕДИНЕНИЕ ДопРеквизиты КАК ДопРеквизиты
ПО КонтрагентыДополнительныеРеквизиты.Свойство = ДопРеквизиты.Свойство
18 — 29.10.19 — 11:18
СКД умеет пользовать экспортные функции общих модулей
19 — 29.10.19 — 12:55
(17)А разве у меня так написано?
AlekseiYunniPodavvan
20 — 31.10.19 — 05:41
(12) (19) Спасибо за помощь! Все получилось!
Опубликовано в Статьи по 1С 27.10.2018
В библиотеке стандартных подсистем 1С дополнительные реквизиты и сведения включены и активно применяются. Эти механизмы позволяют добавить дополнительный реквизит к объекту метаданных без изменения типовой конфигурации. Принцип работы дополнительных реквизитов и сведений, их добавление и получение значений.
Отличие дополнительного реквизита от дополнительного сведения в том, что
- Дополнительные реквизиты – список реквизитов, доступных в форме документа или справочника; причем эти реквизиты хранятся в табличной части объекта, к которому они добавлены;
- Дополнительные сведения – список значений доступных по дополнительной кнопке; причем доп. сведения хранятся в отдельном регистре.
После ввода дополнительного реквизита или сведения 1С, можно создать подключаемую обработку, где считать введенные дополнительные данные и задать необходимую логику обработки данных, в которой использовать этот реквизит или сведение.
Как получить 1С дополнительные реквизиты и сведения программно:
Для получения дополнительных данных используем запрос, в котором получим значение дополнительных реквизитов и сведений:
////
Запрос = Новый Запрос;
Запрос.Текст =
«ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ДополнительныеСведения.Свойство,
| ДополнительныеСведения.Значение
|ИЗ
| РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
|ГДЕ
| ДополнительныеСведения.Объект = &Объект»;
Запрос.УстановитьПараметр(«Объект», СсылкаДокумент);
////
Для получения дополнительного реквизита использую код вида:
////
Запрос = Новый Запрос;
Запрос.Текст =
«ВЫБРАТЬ
| НоменклатураДополнительныеРеквизиты.Свойство,
| НоменклатураДополнительныеРеквизиты.Значение
|ИЗ
| Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
|ГДЕ
| НоменклатураДополнительныеРеквизиты.Свойство = &Свойство
| И НоменклатураДополнительныеРеквизиты.Ссылка = &Ссылка»;
Запрос.УстановитьПараметр(«Ссылка», СсылкаДокумент);
Запрос.УстановитьПараметр(«Свойство», ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(«Коэффициент бруто»));
////
Теперь вы без труда сможете добавить и получить необходимые дополнительные 1С данные без снятия конфигурации 1С с поддержки и изменения типовой конфигурации. Без сомнения, такой инструмент должен быть в арсенале 1С программиста и активно использоваться в работе.
Как редактировать доп реквизиты:
редактировать их состав можно тут:
хранятся они тут:
где типы реквизитов:
получить их в запросе можно так:
ВЫБРАТЬ ПЕРВЫЕ 100
НоменклатураДополнительныеРеквизиты.Ссылка КАК Ссылка,
НоменклатураДополнительныеРеквизиты.Ссылка.Код КАК Код,
НоменклатураДополнительныеРеквизиты.Свойство КАК Свойство,
НоменклатураДополнительныеРеквизиты.Значение КАК Значение
ИЗ
Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
Разберем что откуда берется.
Дополнительные реквизиты заводятся в «ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения» и там же указан тип значений допРеквизитов:
ВЫБРАТЬ
ДополнительныеРеквизитыИСведения.Ссылка КАК Ссылка,
ДополнительныеРеквизитыИСведения.ТипЗначения КАК ТипЗначения
ИЗ
ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения
Для справки: Кроме ссыка и типЗначения в «ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения» хранится куча свойств этих реквизитов
Если указан типЗначеня «ДополнительноеЗначение», то виды этих доп значений можем посмотреть тут:
ВЫБРАТЬ
ЗначенияСвойствОбъектов.Владелец КАК Владелец,
ЗначенияСвойствОбъектов.Ссылка КАК Ссылка,
ЗначенияСвойствОбъектов.Владелец.ТипЗначения КАК ВладелецТипЗначения
ИЗ
Справочник.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
а сами значения дополнительных реквизитов хранятся тут:
Yulunga 1142 / 689 / 203 Регистрация: 22.04.2013 Сообщений: 5,160 Записей в блоге: 1 |
||||
1 |
||||
запрос к доп реквизитам23.03.2021, 08:49. Показов 9637. Ответов 5 Метки нет (Все метки)
всем добра. Добавлено через 3 минуты
танцевал с этим условием по-разному, которое щас выглядит как выбор когда тогда Добавлено через 19 минут
0 |
Scratchsv 369 / 173 / 74 Регистрация: 04.03.2020 Сообщений: 659 |
||||
23.03.2021, 09:36 |
2 |
|||
Сообщение было отмечено Tklwegsd как решение РешениеМожет так:
1 |
Phil 434 / 305 / 92 Регистрация: 28.05.2014 Сообщений: 1,247 |
||||
23.03.2021, 09:40 |
3 |
|||
Yulunga, Ничего не понял, но очень интересно) Есть документ и из него нужно получить значение доп реквизита? Если есть БСП более-менее не старая, то
0 |
1142 / 689 / 203 Регистрация: 22.04.2013 Сообщений: 5,160 Записей в блоге: 1 |
|
23.03.2021, 10:09 [ТС] |
4 |
Scratchsv, спасибо.
0 |
369 / 173 / 74 Регистрация: 04.03.2020 Сообщений: 659 |
|
23.03.2021, 10:29 |
5 |
А чё не получилось-та. Не находит? Даёт ошибку? Добавлено через 8 минут
0 |
1142 / 689 / 203 Регистрация: 22.04.2013 Сообщений: 5,160 Записей в блоге: 1 |
|
23.03.2021, 11:10 [ТС] |
6 |
щас получилось. чо не получилось вчера — уже не найти. я запрос удалил. но делал также
0 |
На чтение 2 мин. Просмотров 635 Опубликовано 15.12.2019
Примеры работы с дополнительными реквизитами.
Как получить значение дополнительного реквизита:
Пример: мы делаем печатную форму документа «Заказ клиента» и хотим вывести на неё значение определённого дополнительного реквизита — «Должность покупателя».
Используем вложенный запрос, в котором соединяем левым соединением таблицу «Дополнительные реквизиты» документа «Заказ клиента» с Планом видов характеристик «Дополнительные реквизиты и сведения». Устанавливаем условие: заголовок дополнительного реквизита должен быть таким – «Должность покупателя». Таблицы соединяем по ссылке на «Заказ клиента».
Получается вот такой запрос:
Также можно использовать метод НайтиПоНаименованию ( «***» ) .
Переменная Ссылка – это ссылка на «Договор контрагента».
Проверка на предмет того, что дополнительный реквизит заполнен:
Как изменить значения дополнительных реквизитов:
Задействуем общий модуль УправлениеСвойствами , который входит в состав БСП.
Юзайте на здоровья!
3 thoughts on “Получить значение дополнительных реквизитов 1С 8”
Спасибо, очень помогло.
К сожалению, на строчке
Запрос.УстановитьПараметр(«Объект», Объект);
спотыкается и отказывается дальше работать
Как редактировать доп реквизиты:
редактировать их состав можно тут:
хранятся они тут:
где типы реквизитов:
получить их в запросе можно так:
НоменклатураДополнительныеРеквизиты.Ссылка КАК Ссылка,
НоменклатураДополнительныеРеквизиты.Ссылка.Код КАК Код,
НоменклатураДополнительныеРеквизиты.Свойство КАК Свойство,
НоменклатураДополнительныеРеквизиты.Значение КАК Значение
Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
Разберем что откуда берется.
Дополнительные реквизиты заводятся в «ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения» и там же указан тип значений допРеквизитов:
ДополнительныеРеквизитыИСведения.Ссылка КАК Ссылка,
ДополнительныеРеквизитыИСведения.ТипЗначения КАК ТипЗначения
ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения
Для справки: Кроме ссыка и типЗначения в «ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения» хранится куча свойств этих реквизитов
Если указан типЗначеня «ДополнительноеЗначение», то виды этих доп значений можем посмотреть тут:
ЗначенияСвойствОбъектов.Владелец КАК Владелец,
ЗначенияСвойствОбъектов.Ссылка КАК Ссылка,
ЗначенияСвойствОбъектов.Владелец.ТипЗначения КАК ВладелецТипЗначения
Справочник.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
а сами значения дополнительных реквизитов хранятся тут:
Google+