![]() |
![]() |
![]() |
|
Как вывести нужный вариант данных в свойства реквизита | ☑ | ||
---|---|---|---|---|
0
Russkiy
07.11.12
✎
12:21
|
Привет, ребята-1С-ники!
У меня 1С:Предприятие 8.2 (8.2.15.318), конфигурация "Управление торговлей для Украины", редакция 2.3. Я тут подгоняю формы документов под специфику товара (а товар у меня - книги). Большинство документов уже сделал - изменения однотипные. А вот в двух документах - "План продаж" и "План закупок", - сделать того же не могу. Здесь требуются изменения другого типа. Подскажите, пожалуйста, кто знает... Итак, к примеру, форма "План закупок". В конфигураторе я открыл форму этого документа, добавил в табличную часть дополнительные, нужные мне колонки, свойства назначал по аналогии с уже имевшейся колонкой "Номенклатура": в частности, элемент управления - Поле ввода. А когда свойство "Данные" попытался назначить по той же аналогии, то в выпадающем списке не нашёл (что, впрочем, естественно) нужного мне реквизита... Точнее. К примеру, одна из добавленных мной колонок "Автор" (имеется в виду автор книги). Мне нужно, чтобы при добавлении в 1С-Предприятие в этот документ ("План закупок") через функцию "Подбор" новых позиций этот реквизит появлялся в соответствующей строке документа, а брался бы из соответствующего реквизита справочника "Номенклатура". Во многих других документах у меня проблем с этим не возникло, а вот в этом - не знаю, как сделать, чтобы в выпадающем списке этого свойства появился этот реквизит для выбора. Надеюсь, что я не слишком сложно и путано обрисовал своё затруднение. Если кто знает (а знают многие, если не все) - подскажите, пожалуйста, как решить проблему, буду весьма признателен. |
|||
1
Undefined vs NULL
07.11.12
✎
12:23
|
если авторов несколько?
зачем реквизит вообще если авторы однозначно определяются самой книгой? это курсовая? |
|||
2
Russkiy
07.11.12
✎
12:33
|
Ща, ребята, ещё одно полезное дополнение. Во многих других документах эта задача решалась таким образом: в модуле формы документа, в процедуре "ТоварыПриВыводеСтроки", добавлялось несколько строк такого рода:
ОформлениеСтроки.Ячейки.Автор.УстановитьТекст(ДанныеСтроки.Номенклатура.Автор); ОформлениеСтроки.Ячейки.Издательство.УстановитьТекст(ДанныеСтроки.Номенклатура.Издательство); ОформлениеСтроки.Ячейки.ГодИздания.УстановитьТекст(ДанныеСтроки.Номенклатура.ГодИздания); ОформлениеСтроки.Ячейки.Оформление.УстановитьТекст(ДанныеСтроки.Номенклатура.Оформление); ОформлениеСтроки.Ячейки.Формат.УстановитьТекст(ДанныеСтроки.Номенклатура.Формат); ОформлениеСтроки.Ячейки.Страниц.УстановитьТекст(ДанныеСтроки.Номенклатура.Страниц) И после этого в созданных колонках формы появлялись нужные мне данные. Я пытался сделать то же и в этом документе, но не получилось - система ругается... Да и процедуры такой в этой форме документа ("План закупок") нет. Я пытался вставить эти строки модуля в процедуру "ОбработкаПодбораНоменклатура(ТабличнаяЧасть, ЗначениеВыбора). Вот её код: Процедура ОбработкаПодбораНоменклатура(ТабличнаяЧасть, ЗначениеВыбора) Перем СпособЗаполненияЦен, ВалютаЦены, Номенклатура, Автор, Издательство, ГодИздания, Страниц, Формат, Оформление, ЕдиницаИзмерения, Количество, Цена, Характеристика; // Получим параметры подбора из структуры подбора. ЗначениеВыбора.Свойство("СпособЗаполненияЦен", СпособЗаполненияЦен); ЗначениеВыбора.Свойство("ВалютаЦены", ВалютаЦены); ЗначениеВыбора.Свойство("Номенклатура", Номенклатура); ЗначениеВыбора.Свойство("ЕдиницаИзмерения", ЕдиницаИзмерения); ЗначениеВыбора.Свойство("Количество", Количество); ЗначениеВыбора.Свойство("Цена", Цена); ЗначениеВыбора.Свойство("Характеристика", Характеристика); // Ищем выбранную позицию в таблице подобранной номенклатуры. // Если найдем - увеличим количество; не найдем - добавим новую строку. СтруктураОтбора = Новый Структура(); Если Номенклатура.Услуга Тогда СтруктураОтбора = Новый Структура("Номенклатура", Номенклатура); Иначе СтруктураОтбора = Новый Структура("ЕдиницаИзмерения, ХарактеристикаНоменклатуры", ЕдиницаИзмерения, Характеристика); КонецЕсли; СтрокаТабличнойЧасти = ОбработкаТабличныхЧастей.НайтиСтрокуТабЧасти(ТабличнаяЧасть, СтруктураОтбора); Если СтрокаТабличнойЧасти = Неопределено Тогда // Не нашли - добавляем новую строку. СтрокаТабличнойЧасти = ТабличнаяЧасть.Добавить(); СтрокаТабличнойЧасти.Номенклатура = Номенклатура; СтрокаТабличнойЧасти.Количество = Количество; СтрокаТабличнойЧасти.ЕдиницаИзмерения = ЕдиницаИзмерения; СтрокаТабличнойЧасти.Коэффициент = СтрокаТабличнойЧасти.ЕдиницаИзмерения.Коэффициент; СтрокаТабличнойЧасти.ХарактеристикаНоменклатуры = Характеристика; // Заполняем реквизиты табличной части. ОбработкаТабличныхЧастей.ЗаполнитьСтавкуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); // Пересчитаем цену в валюту документа. Цена = Ценообразование.ПересчитатьЦенуПриИзмененииВалюты(Цена, ВалютаЦены, ВалютаДокумента, КурсДокумента, КратностьДокумента, Дата); СтрокаТабличнойЧасти.Цена = Ценообразование.ПересчитатьЦенуПриИзмененииФлаговНалогов(Цена, СпособЗаполненияЦен, ТипЦен.ЦенаВключаетНДС, УчитыватьНДС, СуммаВключаетНДС, НалоговыйУчет.ПолучитьСтавкуНДС(СтрокаТабличнойЧасти.СтавкаНДС)); // Рассчитываем реквизиты табличной части. ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); Иначе // Нашли, увеличиваем количество в первой найденной строке. СтрокаТабличнойЧасти.Количество = СтрокаТабличнойЧасти.Количество + Количество; // Рассчитать реквизиты табличной части. ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); КонецЕсли; ЭлементыФормы.СоставПлана.ТекущаяСтрока = СтрокаТабличнойЧасти; Попытка // На случай, если колонка не видима, отключена программно ЭлементыФормы.СоставПлана.ТекущаяКолонка = мКолонкиСоставПлана["Количество"]; Исключение КонецПопытки; КонецПроцедуры // ОбработкаПодбораНоменклатура() Есть подозрение, что всё-таки надо дополнять код одной из процедур модуля, а какой и как - пока не пойму... Нет, это не курсовая, это реальная работа. Мне нужно видеть ряд реквизитов для точной идентификации книг при подборе их в тот или иной документ. |
|||
3
Russkiy
07.11.12
✎
12:37
|
И ещё: я, конечно, вышеприведённые строки вставлял в процедуру не в точности так же, как я их здесь привёл, а по аналогии со строками процедуры, приблизительно так:
СтрокаТабличнойЧасти = ТабличнаяЧасть.Добавить(); СтрокаТабличнойЧасти.Номенклатура = Номенклатура; СтрокаТабличнойЧасти.Автор = Автор; СтрокаТабличнойЧасти.Количество = Количество; СтрокаТабличнойЧасти.ЕдиницаИзмерения = ЕдиницаИзмерения; СтрокаТабличнойЧасти.Коэффициент = СтрокаТабличнойЧасти.ЕдиницаИзмерения.Коэффициент; СтрокаТабличнойЧасти.ХарактеристикаНоменклатуры = Характеристика; Но - не получается так... |
|||
4
vmv
07.11.12
✎
12:38
|
как то все мрачно, ибо тс пока не владеет искусством лаконичного и четкого изложения мысли!
в сабже лишь запутанный лепет и истерики. *пичалицца* |
|||
5
vmv
07.11.12
✎
12:40
|
ВЫЛОЖИ СКРИНЫ с таблицами или рисунками
1. сейчас так 2. а надо так и спроси просто чяднт! |
|||
6
Russkiy
07.11.12
✎
12:44
|
Лаконизм и чёткость изложения страдают? Возможно... Это прежде всего оттого, что я не программист 1С. Но вот истерики и следа нет...
Что же до скриншотов, то мне пока не очень понятно, что же надо показать по этому принципу - "сейчас так, а надо так". Ща подумаю, как это сделать... Хотя, как мне кажется, всё изложено вполне ясно. Только для меня?.. |
|||
7
Russkiy
07.11.12
✎
12:51
|
Кстати, ребята, я уж не первый год пользуюсь услугами этого форума, но вот выводить в свои темы изображения (скриншоты) пока не приходилось - просто ещё не возникала потребность... Теперь, похоже, возникла. Как это здесь делается?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |