Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
17 апр 2024, 00:04

Как подставить в табл.часть значение реквизита выбранного элемента справочника?

Автор detka_cccp, 21 фев 2012, 11:00

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

detka_cccp

Ку.
Пытаюсь написать простую конфигурацию для учета предоставляемых услуг
Начал с 8.2, дошел до создания табл.части документа и не могу двинуться дальше.
Искал ответ на мой вопрос в учебниках и книгах, к сожалению безуспешно (либо пишут не о том, либо я туплю :/, скорее всего второе)
Решил создать ту же конфигурацию на 8.1, и возникла такая же проблема.
Суть вот в чем.

        Есть справочник - Клиенты, у него есть реквизиты - Код, Наименование, Скидка
   Есть Справочник - Товары, у него есть реквизиты - Код, Наименование, Цена1, Цена2 и Цена3

   Есть Документ - Накладная, у него есть реквизиты - Код, Наименование, Клиент.
   Также у накладной есть табличная часть с реквизитами - Товар, Цена, Скидка, Сумма

   Естественно, что в шапке Накладной из поля, соответсвующего реквизиту Клиент, можно выбрать   
   клиента из справочника Клиенты.

   Также в табличной части документа Накладная есть поле реквизита Товар, который можно выбрать из спр. Товары.

   Задача1. При выборе клиента должно заполниться поле Скидка реквизита табличной части накладной

   Задача2  При выборе Товара в поле табличной части документа Накладная, надо чтобы заполнялись поля табличной части Цена и Скидка.

        Не судите строго плиз  :dfbbdrfb:. Хелп кто чем может, от меня - уважуха. :zebzdr:

Dethmontt

Задача1 - А если в табличной части 20 строк???
Процедура ПриИзмененииКлиента
Для каждого Строка из ТабличнаяЧасть Цикл
Строка.Скидка = Клиент.Скидка;
КонецЦикла;


Задача2:
Процедура ПриИзмененииТовара
Строка = ЭлементыФормы.ТабличнаяЧасть.ТекущиеДанные;
Если Строка <> Неопределено Тогда
Строка.Цена = Строка.Товар.Цена1;
КонецЕсли;

Это для Обычных форм, на управляемых работать не будет.
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Klyacksa

Зачем же сразу за человека код писать. А поговорить? А подумать заставить?
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

detka_cccp

Dethmontt - УВАЖУХА !!! Всё получилось!
Klyacksa - я предварительно проштудировал около пяти изданий по 1С 8.1 и 8.2 и парился над этим пару недель. Время идет, а желаемый конфиг не ждёт. Пишу для малого бизнеса, друзья попросили. Живем в глухом городке, да и всегда не прочь обучиться чему то новому. Я программирую на MQL4, пишу советники для Forex и разрабатываю стратегии.
Если интересно могу поделиться опытом.

Теперь еще Задача-3 с которой я не могу справиться.
В этой же конфигурации есть Справочник - Категории (Код, Наименование, Описание)
Справочник - Марки (Код, Наименование, Категория)
   И есть
   А у справочника Клиенты есть еще один реквизит - Марка
   
   Когда создаю нового Клиента в справочнике Клиенты, то реквизит Марка заполняется
   из справочника Марки, в свою очередь когда создаю новую марку в справочнике
   Марки, то реквизит Категория заполняется из справочника Категории.

detka_cccp

Dethmontt - УВАЖУХА !!! Всё получилось!
Klyacksa - я предварительно проштудировал около пяти изданий по 1С 8.1 и 8.2 и парился над этим пару недель. Время идет, а желаемый конфиг не ждёт. Пишу для малого бизнеса, друзья попросили. Живем в глухом городке, да и всегда не прочь обучиться чему то новому. Я программирую на MQL4, пишу советники для Forex и разрабатываю стратегии.
Если интересно могу поделиться опытом.

Теперь еще Задача-3 с которой я не могу справиться.
   В этой же конфигурации есть Справочник - Категории (Код, Наименование, Описание)
   И есть Справочник - Марки (Код, Наименование, Категория)
   А у справочника Клиенты есть еще один реквизит - Марка
   
   Когда создаю нового Клиента в справочнике Клиенты, то реквизит Марка заполняется
   из справочника Марки, в свою очередь когда создаю новую марку в справочнике
   Марки, то реквизит Категория заполняется из справочника Категории.
   Так вот, необходимо, чтобы когда выбираю клиента в шапке накладной, то в табличную часть накладной вставала не просто Цена1, а та Цена, которая соответствует реквизиту Код из справочника Категории, выбранного клиента.

   Другими словами Цена должна определяться по Категории Марки Клиента.

   За помощь отблагодарю мегауважухой !!!

detka_cccp

Блин ребята огромное извинение! В Задаче3 я неправильно указал вопрос.
Вопрос будет звучать так:
Так вот, необходимо, чтобы когда выбираю ТОВАР в ТАБЛ ЧАСТИ накладной, то в табличную часть накладной вставала не просто Цена1, а та Цена, которая соответствует реквизиту Код из справочника Категории, выбранного в шапке накладной  Клиента.

Себя виню.. хотя бегают тут всякие боссы и тупо мешают тех прогрессу )))

detka_cccp

ТОесть, например, если существует Клиент, у которого есть Марка, у которой есть Категория = 3, и мы этого клиента выбрали в шапке накладной, то при изменении товара в табл части накладной поле Цена должно заполниться Ценой3 из спр. Товары.

cska-fanat-kz

Безо всяких проверок...

СтрокаТЧ = ЭлементыФормы.Товары.ТекущиеДанные;
СтрокаТЧ.Цена = СтрокаТЧ.Номенклатура["Цена"+Клиент.Марка.Категория];
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Dethmontt

Я бы вот так написал
СтрокаТЧ = ЭлементыФормы.Товары.ТекущиеДанные;
Если Клиент.Марка.Категория <> 0 и Клиент.Марка.Категория <> Неопределено и Не Клиент.Марка.Категория > 3 Тогда
    СтрокаТЧ.Цена = СтрокаТЧ.Номенклатура["Цена"+Клиент.Марка.Категория];
Иначе
     Сообщить("Колонка Цена"+Строка(Клиент.Марка.Категория)+" не найдена!!!");
Конецесли;
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

cska-fanat-kz

Ну я же написал "без проверок" ;)
Проверять километр чего надо...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги:

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

Рейтинг@Mail.ru

Поиск