Имя: Пароль:
1C
1С v8
вывести автоматически значения справочника
0 yavasya
 
31.08.13
07:53
В 7.7 есть конфигурация по металлолому.
Переношу в 8.2
В поступлениях товаров и услуг есть несколько добавленных колонок
Категория
Товар
Процент засора

Выбираешь категорию и Товар+Процент засора заполняются автоматически
Как такое действие прописать ?
1 Rie
 
31.08.13
08:02
(0) Куда хоть переносишь-то?
(От того, обычное приложение или УФ - кой-чего зависит).
2 yavasya
 
31.08.13
08:17
обычное приложение
3 Rie
 
31.08.13
08:18
(2) В табличную часть добавлены дополнительные реквизиты для категории и процента - или же только реквизит для категории, а товар+процент - надо только показать пользователю?
4 yavasya
 
31.08.13
08:20
Процедура ОбработкаПодбора(ВыбрТовар)
//06.03.05-----------------\
    Если ВыбрТовар.Вид()="КатегорииМеталлов" Тогда //Только по металлу запрашиваем категорию.
        Катег     = ВыбрТовар;
        Засор    = ВыбрТовар.Засоренность;
        ВыбрТовар = ВыбрТовар.ТМЦ;
КонецПроцедуры

КатегорииМеталлов-справочник
5 Rie
 
31.08.13
08:22
(4) Это 7-ка. Какие реквизиты документа, справочники и реквизиты справочника добавлены в 8-ке?
6 yavasya
 
31.08.13
08:22
(2) В табличную часть добавлены дополнительные реквизиты для категории и процента - или же только реквизит для категории, а товар+процент - надо только показать пользователю?
  
Rie не знаю вообще как это сделать. в 7-ке не работал до этого и 8-ке новичок
7 yavasya
 
31.08.13
08:23
в 8 -ку мне надо переписать всё из 7-ки
8 Rie
 
31.08.13
08:23
(6) Конфигурация 8.2 - какая?
9 Rie
 
31.08.13
08:23
(7) Не для новичка это задача...
10 yavasya
 
31.08.13
08:24
Бухгалтрия предприятия 8.2
11 yavasya
 
31.08.13
08:24
Rie - Не для новичка это задача..
может на ней я выросту
12 Rie
 
31.08.13
08:32
Предположим, что конфигурацию БП 2.0 добавлен справочник КатегорииМеталлов, у которого, помимо прочих, есть реквизиты ТМЦ типа СправочникСсылка.Номенклатура и Засоренность (хрен знает какого типа), а в документ ПоступлениеТоваровУслуг в табличную часть Товары добавлены реквизиты Катег типа СправочникСсылка.КатегорииМеталлов и Засор (хрен знает какого типа).

В форме документа ПоступлениеТоваровУслуг уже имеется процедура ОбработкаПодбора с параметрами ТабличнаяЧасть и ЗначениеВыбора. И ещё имеется кнопка Подбор. Однако они сейчас "нацелены" на подбор только из справочника Номенклатура.

Кроме того, как я понял, требуется не только подбор, но те же действия нужно выполнять и при выборе категории в поле ввода табличной части Товары.
13 Rie
 
31.08.13
08:35
(12) Начнём с последнего. Чтобы обработать выбор в поле ввода табличного поля, надо создать обработчик события ПриИзменении для этого поля.
Ну а дальше - просто:

Процедура ТоварыКатегПриИзменении(Элемент)
    СтрокаТЧ = ЭлементыФормы.Товары.ТекущиеДанные;
    Если ЗначениеЗаполнено(СтрокаТЧ.Катег) Тогда
        Номенклатура = СтрокаТЧ.Катег.ТМЦ;
        Засор = СтрокаТЧ.Катег.Засоренность;
    Иначе
        // тут уж сам решай, что делать, если пользователь
        // удалил категорию
КонецПроцедуры
14 Rie
 
31.08.13
08:38
+(11) Теперь о подборе.
Сейчас конфигурация предусматривает подбор номенклатуры.
Нужен ли будет в изменённой конфигурации подбор номенклатуры - или же будет только подбор категорий (и если подбор номенклатуры будет - то как быть в таком случае с категориями)?
15 yavasya
 
31.08.13
08:43
Rie огромное спасибо!
16 yavasya
 
31.08.13
08:43
сейчас проверю
17 Rie
 
31.08.13
08:56
+(14) Для подбора категорий - независимо от того, нужен ли подбор номенклатуры или нет - лучше создай свою кнопку на командной панели, связанной с табличным полем Товары. И, естественно, обработчик к ней.

В 8.2 при получении значения из подбора вызывается обработчик события формы ОбработкаВыбора. Он в модуле формы документа уже есть. Для красоты типовая форма подбора передаёт значение типа Структура, где всё уже разложено по полочкам. Но красоту потом наведёшь. Пока что не заморачивайся и возвращай из формы подбора категории значение типа СправочникСсылка.КатегорииМеталлов.
Соответственно, в ОбработкаВыбора() проверь:

ИначеЕсли ТипЗнч(ЗначениеВыбора)=Тип("СправочникСсылка.КатегорииМеталлов) Тогда
    // и вот тут обрабатываешь получение категории
    // сначала смотришь - не вводилась ли эта категория ранее
    // (кстати, в 7.7 почему-то нет этой проверки)
    СтруктураОтбора = Новый Структура("Катег",ЗначениеВыбора);
    СтрокаТЧ = ОбработкаТабличныхЧастей.НайтиСтрокуТабЧасти(Товары, СтруктураОтбора);
    Если СтрокаТЧ=Неопределено Тогда
        // ранее не вводилась
        СтрокаТЧ = Товары.Добавить();
        СтрокаТЧ.Катег = ЗначениеВыбора;
        СтрокаТЧ.Номенклатура = ЗначениеВыбора.ТМЦ;
        СтрокаТЧ.Засор = ЗначениеВыбора.Засоренность;
        // кстати, тут хорошо бы помедитировать насчёт количества, цен и т.п.
    Иначе
        // наверное, надо количество увеличить
        СтрокаТЧ.Количество = СтрокаТЧ.Количество+1;
        ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТЧ,ЭтотОбъект);
        ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТЧ,ЭтотОбъект);
        // а может, и ещё чего-то сделать
    КонецЕсли;
18 yavasya
 
01.09.13
06:56
ничего не вышло
19 Rie
 
01.09.13
06:58
(18) Просто пришёл пожаловаться?
Или хочешь, чтобы "вышло"?
20 yavasya
 
01.09.13
07:12
извините , сгоряча.
если не выйдет, то уволят
21 Rie
 
01.09.13
07:17
(20) Ты плакаться пришёл? Или может, тебе чего нужно?
Если что-то нужно - то расскажи, что сделал, чего не сделал, что получилось, что не получилось - и что значит "не получилось" (наверное, какие-то ошибки были? или что-то не выполнилось так, как ожидалось? или ещё что?). Можешь даже код проблемных мест показать.
22 yavasya
 
01.09.13
07:22
Создал справочник ВидыЛома
реквизиты справочника:
Категория: ПеречеслениеСсылка.Категория
Товар:Строка(бесконечная)
Засоренность: число
Не могу убрать стандартный реквизит номенклатура

В документе:Поступление товаров и услуг создал реквизиты
1. Категория: ПеречеслениеСсылка.Категория
2.Товар:СправочникСсылка.ВидыЛома

В форме создал 2 колонки : Категория и Товар
Категория-данные категория
Товар-данные товар



Процедура ТоварыКатегорияПриИзменении(Элемент)
    // Вставить содержимое обработчика.
     СтрокаТЧ = ЭлементыФормы.Товары.ТекущиеДанные;
     Товар = СтрокаТЧ.Товар.Товар;
    
    
    
    
КонецПроцедуры
23 Rie
 
01.09.13
07:25
(22) ТоварКатегорияПриИзменении - указал обработчиком поля ввода табличного поля?
24 yavasya
 
01.09.13
07:26
Когда в документе поступление товаров и услуг щелкаешь по полю ввода колонки товар , можно выбрать только реквизит справочника выды лома "номенклатура"
25 yavasya
 
01.09.13
07:27
ТоварКатегорияПриИзменении - указал обработчиком поля ввода табличного поля
щелкнул в поле ввода и указал событие при изменении
26 Rie
 
01.09.13
07:27
(24) Ну так он у тебя и есть типа СправочникСсылка.ВидыЛома.
А что нужно?
27 yavasya
 
01.09.13
07:28
Хочу чтобы выбирал реквизит не номенклатура справочника виды лома , а значение реквизита "товар"
28 Rie
 
01.09.13
07:31
(27) Что-то я не пойму, в чём состоит твоё желание.
_Куда_ выбирал?
Реквизит Товар имеет тип "СправочникСсылка.ВидыЛома". И может принимать значения только этого типа.
Товар.Товар у тебя имеет тип Строка. И это значение можно присвоить только реквизиту типа Строка.

Насколько я понял, Товар.Товар - чисто для справки. В документе (для работы) он и даром не нужен. Так?

Тогда не надо никуда его записывать.
29 yavasya
 
01.09.13
07:33
все верно. Товар и даром не нужен
30 Rie
 
01.09.13
07:35
+(38)
Добавляешь колонку ТекстТовар. Данных ей не надо.

Процедура ТоварыПриВыводеСтроки(Элемент,ОформлениеСтроки,Ячейки)
    Если ЗначениеЗаполнено(ДанныеСтроки.Товар) Тогда
        ОформлениеСтроки.Ячейки.ТекстТовар.УстановитьТекст(ДанныеСтроки.Товар.Товар);
    Иначе
        ОформлениеСтроки.Ячейки.ТекстТовар.УстановитьТекст("");
    КонецЕсли;

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

Вешаешь это как обработчик события ПриВыводеСтроки табличного поля Товары.
31 yavasya
 
01.09.13
07:36
хочу чтобы в колонке товар табличной части документа "поступление товаров и услуг" выбирался реквизит товар справочника виды лома , а не номенклатура справочника видылома
32 Rie
 
01.09.13
07:40
(31) Тогда измени тип реквизита Номенклатура на СправочникСсылка.ВидыЛома - и будет счастье.

Но, честно говоря, я не понимаю, зачем тебе вообще справочник ВидыЛома? Почему это отдельный справочник, а не группа в справочнике Номенклатура?

Если же нужен отдельный справочник - то я бы завёл отдельную табличную часть под виды лома, а не использовал табличную часть Товары. И отдельную закладку на форме документа.
(Ну и имей в виду: документ - это такая зараза, которая должна _проводиться_. А значит, придётся переписывать обработку проведения).
33 yavasya
 
01.09.13
07:44
ДанныеСтроки неопределена переменная
34 Rie
 
01.09.13
07:47
(33) Третий параметр - не Ячейки, а ДанныеСтроки.
35 yavasya
 
01.09.13
07:48
все советы приняты. уберу справочник виды лома. но главный вопрос как при изменении одной колонки достичь изменения в двух остальных?
36 yavasya
 
01.09.13
07:49
сколько у вас стоит час занятий ? по скайпу и тимвьюеру ? деньги на телефон положу
37 yavasya
 
01.09.13
07:50
я сам занимаюсь репетиторством по инженерной стезе
38 Rie
 
01.09.13
07:56
(35) Смотря что за колонки.
Есть колонки, соответствующие реквизитам табличной части - тогда используй обработчик ПриИзменении, в нём, используя ТекущиеДанные табличного поля, устанавливаешь значения этих реквизитов.
Но бывают колонки "демонстрационные" - им не соответствуют (и не хранятся) никакие данные, они только отображаются на форме на основании данных из реквизитов. Чтобы показать в них что-нибудь - используются обработчики ПриВыводеСтроки/ПриПолученииДанных (второй - несколько побыстрее работает, но суть - одна), в которых есть параметр ОформлениеСтроки/ОформленияСтроки. Через этот параметр определяется, что выводить в колонках.
39 yavasya
 
01.09.13
08:03
обработчик работает
40 Rie
 
01.09.13
08:06
(39) Тогда в чём проблема? (Полагаю, что в структуре и типах данных).
41 yavasya
 
01.09.13
08:08
возьмитесь пожалуйста за репетиторство по скайпу
42 Rie
 
01.09.13
08:12
(41) Посмотрите почту.
43 yavasya
 
01.09.13
08:17
посмотрите почту
44 yavasya
 
02.09.13
09:06
Процедура  Без_НДСПриИзменении(Элемент)
    // Вставить содержимое обработчика.
    ЭлементыФормы.Товары.Колонки.СтавкаНДС.Доступность = не Без_НДС;
    ЭлементыФормы.Товары.Колонки.СтавкаНДС.Видимость = не Без_НДС;
    ЭлементыФормы.Товары.Колонки.СуммаНДС.Видимость = не Без_НДС;
    ЭлементыФормы.Товары.Колонки.ОтражениеВУСН.Видимость = не Без_НДС;
    ЭлементыФормы.Товары.Колонки.СчетУчета.Видимость = не Без_НДС;
    ЭлементыФормы.Товары.Колонки.СчетУчетаНДС.Видимость = не Без_НДС;
    
    ЭлементыФормы.Товары.Колонки.СуммаНДС.Доступность = не Без_НДС;
    ЭлементыФормы.Товары.Колонки.ОтражениеВУСН.Доступность = не Без_НДС;
    ЭлементыФормы.Товары.Колонки.СчетУчета.Доступность = не Без_НДС;
    ЭлементыФормы.Товары.Колонки.СчетУчетаНДС.Доступность = не Без_НДС;

    
КонецПроцедуры
флажок добавил без НДС
при открытии добавил событие
Без_НДС=истина;
флажок включен Без НДС, а событие ПриИзменении не работает
45 yavasya
 
02.09.13
09:07
добавил реквизит в форму объекта "Без НДС" и присвоил его значение флажку Без НДС
46 Rie
 
02.09.13
09:11
(44) По идее - всё верно.
В чём состоит проблема?
47 yavasya
 
02.09.13
09:16
не работает )) я и так и так всё перебрал , при запуске работает металлолом который вы делаете , а мой флажок неработает )) рука мастера)
48 yavasya
 
02.09.13
09:17
Всё колонки с НДС видны
49 yavasya
 
02.09.13
09:17
может код неверный ?
50 yavasya
 
02.09.13
09:33
реквизит где то незарегистрировал
51 Rie
 
02.09.13
09:36
(50) Вышли сf-ку и md.
Будем посмотреть.
52 yavasya
 
02.09.13
09:37
подключитесь ?
53 yavasya
 
02.09.13
09:39
фишка в том что хоть галочка и стоит , но программа галочку не видит . когда руками снимаешь галочку а потом обратно ставишь всё работает
54 Rie
 
02.09.13
09:44
(52) Время назовите.
55 yavasya
 
02.09.13
09:50
сейчас
56 yavasya
 
02.09.13
10:19
после часа
57 Rie
 
02.09.13
10:23
(56) То есть, через полчаса? ОК.
58 yavasya
 
02.09.13
10:41
ок
я думаю что это стандартные колонки и их формирует код при запуске
59 yavasya
 
02.09.13
11:02
ЭлементыФормы.КоманднаяПанельТовары.Кнопки.ДействиеПодбор.Доступность = Колонки.Номенклатура.Видимость;
    
    // Колонки налога показываем только тогда.Видимость = когда его учитываем.
    //Колонки.СтавкаНДС.Видимость      = УчитыватьНДС;
    КолонкиУслуг.СтавкаНДС.Видимость = УчитыватьНДС;
    КолонкиАгентскиеУслуги.СтавкаНДС.Видимость = УчитыватьНДС;
    КолонкиОС.СтавкаНДС.Видимость    = УчитыватьНДС;
    КолонкиОбС.СтавкаНДС.Видимость   = УчитыватьНДС;

    //Колонки.СуммаНДС.Видимость      = УчитыватьНДС;
    КолонкиУслуг.СуммаНДС.Видимость = УчитыватьНДС;
    КолонкиАгентскиеУслуги.СуммаНДС.Видимость = УчитыватьНДС;
    КолонкиОС.СуммаНДС.Видимость    = УчитыватьНДС;
    КолонкиОбС.СуммаНДС.Видимость   = УчитыватьНДС;

    //Колонки.Всего.Видимость      = УчитыватьНДС;
    КолонкиУслуг.Всего.Видимость = УчитыватьНДС;
    КолонкиАгентскиеУслуги.Всего.Видимость = УчитыватьНДС;
    КолонкиОС.Всего.Видимость    = УчитыватьНДС;
    КолонкиОбС.Всего.Видимость   = УчитыватьНДС;
    
    //Колонки.СчетУчетаНДС.Видимость = ПоказыватьВДокументахСчетаУчета И НЕ ЭтоПереработка И НЕ ЭтоКомиссияПоПродаже И УчитыватьНДС И НЕ РозницаВПродажныхЦенах;
    //Колонки.СчетУчета.Видимость  = ПоказыватьВДокументахСчетаУчета И НЕ РозницаВПродажныхЦенах;
60 yavasya
 
02.09.13
11:03
победа
61 Rie
 
02.09.13
11:22
(60) Многословно - но это устранима.
Но если работает - победа!
62 yavasya
 
02.09.13
11:49
проверьте почту
63 yavasya
 
02.09.13
12:58
берем новую колонку. делаем реквизит справочник ссылка , как можно сделать так, чтобы колонка ссылалась на определенный выбранный реквизит при выборе значения из справочника, а не на код ?