Поиск элемента по дополнительному реквизиту
По теме из базы знаний
- Быстрый поиск дублей в 1С с четким/нечетким поиском по любому сочетанию реквизитов/реквизитов таб. частей с отбором и быстрой заменой значений в ЛЮБЫХ базах 8.1-8.3 (УТ 10.3, БП 2, ЗУП 2.5, КА 1.1, УТ 11, БП 3, УНФ 1.6/3.0, КА 2, ЗУП 3 и т.д.)
- Конвертация данных: Поиск при загрузке по дополнительному реквизиту
- Документооборот. Отбор по владельцу для дополнительного реквизита
- Пример переноса справочников, документов и движений через Эксель и "Конвертацию данных 2" из оптовой учетной системы 1С 7.7 Комплексной 4.2 и розничной учетной системы Рарус Торговый комплекс -> в 1С 8.3 ЕРП 2.4 (расширение и дополнительные реквизиты)
- Дополнительные реквизиты формы (простой вариант взаимодействия)
Найденные решения
Вроде бы вопрос не про "дополнительные сведения" был, а по "дополнительный реквизит". Доп. реквизиты не в регистре лежат. Они лежат в табличной части "ДополнительныеРеквизиты" справочника "ПодразделенияОрганизаций".
В таком случае запрос должен быть следующий:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ Различные
| ПодразделенияОрганизацийДополнительныеРеквизиты.Ссылка КАК Ссылка
|ИЗ
| Справочник.ПодразделенияОрганизаций.ДополнительныеРеквизиты КАК ПодразделенияОрганизацийДополнительныеРеквизиты
|ГДЕ
| ПодразделенияОрганизацийДополнительныеРеквизиты.Свойство.Имя = &Имя
| И ПодразделенияОрганизацийДополнительныеРеквизиты.Значение = &Значение";
Запрос.УстановитьПараметр("Значение", Значение); // Это значение Вашего реквизита
Запрос.УстановитьПараметр("Имя", "Мерт"); // Это ИМЯ реквизита (не наименование, а Имя, которое "для разработчиков")
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// Вставить обработку выборки ВыборкаДетальныеЗаписи
КонецЦикла;
Только у дополнительного реквизита нужно задать это имя принудительно в карточке самого доп. реквизита в самом низу "Для разработчиков"
В таком случае запрос должен быть следующий:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ Различные
| ПодразделенияОрганизацийДополнительныеРеквизиты.Ссылка КАК Ссылка
|ИЗ
| Справочник.ПодразделенияОрганизаций.ДополнительныеРеквизиты КАК ПодразделенияОрганизацийДополнительныеРеквизиты
|ГДЕ
| ПодразделенияОрганизацийДополнительныеРеквизиты.Свойство.Имя = &Имя
| И ПодразделенияОрганизацийДополнительныеРеквизиты.Значение = &Значение";
Запрос.УстановитьПараметр("Значение", Значение); // Это значение Вашего реквизита
Запрос.УстановитьПараметр("Имя", "Мерт"); // Это ИМЯ реквизита (не наименование, а Имя, которое "для разработчиков")
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// Вставить обработку выборки ВыборкаДетальныеЗаписи
КонецЦикла;
Только у дополнительного реквизита нужно задать это имя принудительно в карточке самого доп. реквизита в самом низу "Для разработчиков"
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(5) как-то так (имя регистра по базе уточните сами )
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| ДопСведения.Объект КАК Владелец
|ИЗ
| РегистрыСведений.ДополнительныеСведения КАК ДопСведения
|ГДЕ
| ДопСведения.Свойство = &Свойство
| И ДопСведения.Значение ПОДОБНО &Значение";
Запрос.УстановитьПараметр("Свойство", <Ссылка на свойство>);
Запрос.УстановитьПараметр("Значение", "%Мерт%");
Результат = Запрос.Выполнить.Выгрузить();
Показать
Вроде бы вопрос не про "дополнительные сведения" был, а по "дополнительный реквизит". Доп. реквизиты не в регистре лежат. Они лежат в табличной части "ДополнительныеРеквизиты" справочника "ПодразделенияОрганизаций".
В таком случае запрос должен быть следующий:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ Различные
| ПодразделенияОрганизацийДополнительныеРеквизиты.Ссылка КАК Ссылка
|ИЗ
| Справочник.ПодразделенияОрганизаций.ДополнительныеРеквизиты КАК ПодразделенияОрганизацийДополнительныеРеквизиты
|ГДЕ
| ПодразделенияОрганизацийДополнительныеРеквизиты.Свойство.Имя = &Имя
| И ПодразделенияОрганизацийДополнительныеРеквизиты.Значение = &Значение";
Запрос.УстановитьПараметр("Значение", Значение); // Это значение Вашего реквизита
Запрос.УстановитьПараметр("Имя", "Мерт"); // Это ИМЯ реквизита (не наименование, а Имя, которое "для разработчиков")
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// Вставить обработку выборки ВыборкаДетальныеЗаписи
КонецЦикла;
Только у дополнительного реквизита нужно задать это имя принудительно в карточке самого доп. реквизита в самом низу "Для разработчиков"
В таком случае запрос должен быть следующий:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ Различные
| ПодразделенияОрганизацийДополнительныеРеквизиты.Ссылка КАК Ссылка
|ИЗ
| Справочник.ПодразделенияОрганизаций.ДополнительныеРеквизиты КАК ПодразделенияОрганизацийДополнительныеРеквизиты
|ГДЕ
| ПодразделенияОрганизацийДополнительныеРеквизиты.Свойство.Имя = &Имя
| И ПодразделенияОрганизацийДополнительныеРеквизиты.Значение = &Значение";
Запрос.УстановитьПараметр("Значение", Значение); // Это значение Вашего реквизита
Запрос.УстановитьПараметр("Имя", "Мерт"); // Это ИМЯ реквизита (не наименование, а Имя, которое "для разработчиков")
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// Вставить обработку выборки ВыборкаДетальныеЗаписи
КонецЦикла;
Только у дополнительного реквизита нужно задать это имя принудительно в карточке самого доп. реквизита в самом низу "Для разработчиков"
Конфигурация УТ11.4
Ребята, воспользовался текстом вашего запроса - значений не возвращает... Что мог упустить? КодСинхронизации_с_УНФ - это имя присвоил реквизиту Имя разработчика
Ребята, воспользовался текстом вашего запроса - значений не возвращает... Что мог упустить? КодСинхронизации_с_УНФ - это имя присвоил реквизиту Имя разработчика
Функция НайтиНоменклатуруВладелецПоРеквизиту(Значение)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| НоменклатураДополнительныеРеквизиты.Ссылка КАК Ссылка
|ИЗ
| Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
|ГДЕ
| НоменклатураДополнительныеРеквизиты.Свойство.Имя = &Имя
| И НоменклатураДополнительныеРеквизиты.Значение = &ЗначениеПараметра";
Запрос.УстановитьПараметр("ЗначениеПараметра", Значение); // Это значение реквизита
Запрос.УстановитьПараметр("Имя", "КодСинхронизации_с_УНФ"); // Это ИМЯ реквизита (не наименование, а Имя, которое "для разработчиков")
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
Владелец = Выборка[0].Значение;
КонецЦикла;
Возврат Владелец;
КонецФункции
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот