Консультация № 110111
19.11.2007, 11:25
0.00 руб.
0 4 4
Добрый день уважаемые эксперты! Вновь прошу вашей помощи т.к. выручали Вы меня уже не раз!
Дано:
Справочник "А" и справочник "Б". Справочник "Б" является подчиненным справочнику "А".
Задача:
При заполнении формы справочника "А" необходимо видеть данные двух реквизитов справочника "Б". Просто видеть, редактировать ненадо. Подскажите как это можно сделать? Если можно, максимально подробно - в 1с я еще "Не волшебник, а только учусь!"Зарание огромное всем спасибо!

Приложение:
1с 7.7, конфигурация на базе "Торговля и склад".

Обсуждение

Неизвестный
19.11.2007, 12:57
общий
это ответ
Здравствуйте, Serega_artem!

На форме помещаете элемент диалога типа "Таблица значений", присваиваете ему в свойствах идентификатор (у меня в примере - ТЗ).
Далее в модуле формы пишете процедуру заполнения этой таблицы данными подчиненного справочника (у меня в примере я заполняю реквизиты Рекв1 и Рекв2). Пример процедуры смотрите в Приложении.
Далее вопрос куда поместить вызов этой процедуры. Если это форма элемента, то тогда в предопределенную процедуру ПриОткрытии(). Если же это форма списка, то в предопределенную процедуру ПриВыбореСтроки().

Удачи!

Приложение:
Процедура ЗаполнитьТЗ() Если ТЗ.КоличествоКолонок()=0 Тогда // Первый раз формируем таблицу значений ТЗ.НоваяКолонка("Кол1"); // тип колонок, заголовки и экранную ширину можно установить в параметрах метода ТЗ.НоваяКолонка("Кол2"); КонецЕсли; ТЗ.УдалитьСтроки(); Если ТекущийЭлемент().Выбран()=0 Тогда // Либо новый элемент, либо в форме списка нет еще элементов Возврат; КонецЕсли; // Далее заполняем ТЗ Спр=СоздатьОбъект("Справочник.Б"); Спр.ИспользоватьВладельца(ТекущийЭлемент()); Спр.ВыбратьЭлементы(); Пока Спр.ПолучитьЭлемент()=1 Цикл Если Спр.ПометкаУдаления()=1 Тогда // Помеченные на удаление пропускаем Продолжить; КонецЕсли; // Добавляем строку в ТЗ ТЗ.НоваяСтрока(); ТЗ.Кол1=Спр.Рекв1; ТЗ.Кол2=Спр.Рекв2; КонецЦикла; КонецПроцедуры
Неизвестный
19.11.2007, 13:22
общий
это ответ
Здравствуйте, Serega_artem!
На форме справочника А создаем элемент ТаблицаЗначений (ТЗ), и при открытии формы пишем :
ТЗ.НоваяКолонка("Р1");
ТЗ.НоваяКолонка("Р2");
//Это мы определили колонки которые будут заполняться.
//Дальше заполняем таблицу значений
Спр=СоздатьОбъект("Справочник.Б");
Спр.ИспользоватьВладельца(ТеекущийЭлеиент());
Спр.ВыбратьЭлементы();
Пока Спр.получитьЭлемент()=1 Цикл
ТЗ.НоваяСтрока();
ТЗ.Р1=Спр.Реквизит1;
ТЗ.Р2=Спр.Реквизит2;
КонецЦикла;
Неизвестный
19.11.2007, 20:13
общий
это ответ
<font color=red><b>!!!</b></font>
Здравствуйте, Serega_artem!
Вообще можно сделать следующим образом. При вводе в твоей форме необходимого реквизита из Справочника "А" открывается просто форма где прописываются след. строки.
Спр = СоздатьОбъект("Справочник.А");
Спр.ИспользоватьВладельца(Форма.Параметр);
Спр.ВыбратьСтроки()
Пока ПолучитьСтроку() = 1 Цикл
НоваяСтрока();
......
КонецЦикла;
и также потом по второму реквезиту.<p><fieldset style=‘background-color:#EFEFEF; width:80%; border:red 1px solid; padding:10px;‘ class=fieldset><font color=red><i>Абсолютно неадекватный ответ с непонятным смыслом и неработающим программным кодом.</i>
-----
</font><font color=#777777 size=1><b>• Отредактировал: <a href=/info/user/10794 target=_blank>Сергей Максименко [Elric]</a></b> (Профессионал)
<b>• Дата редактирования:</b> 19.11.2007, 23:45</font></fieldset>
Неизвестный
22.11.2007, 18:38
общий
это ответ
<font color=red><b>!!!</b></font>
Здравствуйте, Serega_artem! Заводите поле тип ТЕКСТ и на закладке "Дополнительно" прописывайте функцию которая возвращает нужное вам значение из подчиненного справочника. Я бы написал пример, только одна проблемка подчиненный справочник это куча элементов а спозиционироваться надо на каком то конкретном элементе т.е. если бы вы написали какие данные какого элемента подчиненного справочника Вы хотите вывести исходя из каких условий ? <p><fieldset style=‘background-color:#EFEFEF; width:80%; border:red 1px solid; padding:10px;‘ class=fieldset><font color=red><i>это не ответ на вопрос</i>
-----
</font><font color=#777777 size=1><b>• Отредактировал: <a href=/info/user/10794 target=_blank>Сергей Максименко [Elric]</a></b> (Профессионал)
<b>• Дата редактирования:</b> 24.11.2007, 12:00</font></fieldset>
Форма ответа