Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
05 дек 2023, 12:22

Запрос с одного справочника в другой выводит пустую строку?

Автор AlexBes, 20 июн 2022, 05:45

0 Пользователей и 1 гость просматривают эту тему.

AlexBes

Запрос = Новый Запрос;
    Запрос.Текст =
"ВЫБРАТЬ
|    ФИО
|    ИЗ
|    Справочник.Справочник2 КАК Справочник2";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Выборка.Следующий();
 
//Что тут дописать?
 
 
Ссылка = Справочники.Справочник1.СоздатьЭлемент();
 
 
 
Ссылка.Записать();
:dfbsdfbsdf:

alexandr_ll


AlexBes

alexandr_ll, ФИО со справочник2, чтобы перенеслось в справочник1

ls600

ответ тут.

Справочники в языке 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

// найдём город Калькутта
КалькуттаСсылка = Справочники.Города.НайтиПоНаименованию("Калькутта");
Если Не КалькуттаСсылка.Пустая() Тогда
// изменим и запишем численность жителей в городе
Калькутта = КалькуттаСсылка.ПолучитьОбъект();
Калькутта.Численность = 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;

// преобразуем документа обратно в данные формы
ЗначениеВДанныеФормы(Еда, ДанныеФормы);

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

/// Скачать и выполнить эти примеры на компьютере

alexandr_ll

AlexBes, Какие реквизиты имеет справочник2? В какой процедуре используется ваш запрос?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск