Имя: Пароль:
1C
1С v8
Выбор номенклатуры
0 zak555
 
25.02.13
08:54
Доброго времени суток!

Пусть есть документы Счет и РТиУ.
Возможно ли ограничить список выбираемой номенклатуры в документе РТиУ списком, который находится в документе Счете?
или как сделать выбор номенклатуры в документе РТиУ из ТЧастей документа-основания Счета?
1 Галахад
 
гуру
25.02.13
08:56
Отбор "ВСписке" предлагать?
2 mikecool
 
25.02.13
08:56
отказ от стандартного выбора, установка списка выбора
3 Alex S D
 
25.02.13
08:56
причем тут список?) он же на основании вводит я так понял
4 Alex S D
 
25.02.13
08:57
в обработке заполнения пропиши все
5 Alex S D
 
25.02.13
08:57
а не, я не так понял
6 zak555
 
25.02.13
09:02
(1) (2) важно, чтобы номер выбираемой строки был виден
7 mikecool
 
25.02.13
09:03
(6) разрешаю в списке выбора в представлении добавить и номер строки документа )))
8 zak555
 
25.02.13
09:04
(7) также стоимость отгрузки
9 zak555
 
25.02.13
09:04
т.е. можно форму документа Счет открыть на подбор ?
10 Галахад
 
гуру
25.02.13
09:05
(8) Гм. А нет там условия, что бы не показывать уже выбранного?
11 Alex S D
 
25.02.13
09:06
форму документа на подбор? мде...
12 Alex S D
 
25.02.13
09:06
сделай уже свою форму выбора и подбивай из нее
13 zak555
 
25.02.13
09:07
(10) при выборе уже выбранного будет проверка на дублёж =)
14 zak555
 
25.02.13
09:07
(11) я смысл пытался объяснить
15 zak555
 
25.02.13
09:08
(12) с этого момента по-подробнее
16 Alex S D
 
25.02.13
09:08
(15) ну делаешь форму подбора, заполняешь ее товарами из счета
17 Alex S D
 
25.02.13
09:09
(15) форму подбора пихаешь в реализацию
18 zak555
 
25.02.13
09:10
(16) > делаешь форму подбора

эта форма необязательно должна принадлежать объекту документ счет ?
19 Alex S D
 
25.02.13
09:10
(18) см (17)
20 lefthander
 
25.02.13
09:10
(0) Поясните, что означает ограничение списка выбираемой номенклатуры в документе, списком номенклатуры в счете? Если надо на основании счета сделать документ, то это одно, а если заполнить номенклатурой из счета, то это другое....
21 Alex S D
 
25.02.13
09:10
не обязательно. вообще произвольная форма
22 zak555
 
25.02.13
09:13
я так понял, что нужно нарисовать форму выбора/подбора
23 Alex S D
 
25.02.13
09:14
хах, ну да
24 zak555
 
25.02.13
09:24
метода загрузить у табличного поля нет
делать перебор что ли ?
25 Alex S D
 
25.02.13
09:24
просто присвой ему тз
26 Alex S D
 
25.02.13
09:24
через =
27 zak555
 
25.02.13
09:25
ТП.Данные = ?
28 Alex S D
 
25.02.13
09:26
ТП.значение вроде, не помню , с утра башка не варит
29 zak555
 
25.02.13
09:28
как её открыть на выбор/подбор ? где в параметрах открытиях задаётся это ?
30 Alex S D
 
25.02.13
09:33
ну приначалевыбора ченить :

   СтандартнаяОбработка = Ложь;

   ФормаВыбора = Справочники.ИнформационныеКарты.ПолучитьФормуВыбора(, ЭлементФормы);
   ФормаВыбора.ПараметрВыборГруппИЭлементов = ЭлементФормы.ВыборГруппИЭлементов;
   ФормаВыбора.СправочникСписок.Отбор.ТипКарты.Установить(ТипКарты);
   ФормаВыбора.ЭлементыФормы.СправочникСписок.НастройкаОтбора.ТипКарты.Доступность = Ложь;

   ФормаВыбора.Открыть();
31 zak555
 
25.02.13
09:50
ок, благодарю - попробую
32 Serg_1960
 
25.02.13
09:57
"...ограничить список списком, который находится в документе"
"... важно, чтобы номер выбираемой строки был виден"
"...также стоимость отгрузки"
...
Что-то мне это напоминает...
:(
...ммм...
:)
О_О Перетаскивание!
33 КонецЕсли
 
25.02.13
10:32
Процедура НоменклатураНачалоВыбора(СтандартнаяОбработка)
   СтандартнаяОбработка=ложь;
   ТЗ=Счет.Товары.Выгрузить(,"номерСтроки,Номенклатура,количество,Сумма");
   Выбрано=ТЗ.ВыбратьСтроку();
...
34 zak555
 
25.02.13
11:57
(33) для одного значения отлично
35 zak555
 
25.02.13
13:02
а вот для подбора нескольких элементов я так понимаю, что нужно рисовать форму

создал произвольную форму
добавил два реквизита формы Товары/Услуги с типом ТаблицаЗначений
на форму добавил два Табличных поля ТП1 и ТП2 с типами Товары/Услуги соотственно


если написать в передОткрытии

Услуги = Счет.Товары.Выгрузить();

то ТП2 не заполняется

почему ?
36 zak555
 
25.02.13
13:04
ЭлементыФормы.ТП2.Значение = Счет.Товары.Выгрузить();


ТП2 опять не заполняется, хотя в отладчики .Значение заполнена
37 zak555
 
25.02.13
13:18
забыл про =)

ЭлементыФормы.ТП2.СоздатьКолонки() написать
38 zak555
 
25.02.13
15:55
для одной строки и кнопки подбор реализовал заполнение тч
а как в созданной форме выбора сделать выделенные строки при подборе ?
39 Alex S D
 
25.02.13
15:56
что значит выделенные строки?
40 zak555
 
25.02.13
16:04
в доке "РТиУ"

//...
МояФормаВыбора.Подбор = Подбор;
МояФормаВыбора.ОткрытьМодально();


в новой форме есть обработчик

Процедура ТабличноеПолеТП2 Выбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
   
   
КонецПроцедуры


в него, при клике на строку попадает срокаТаблицыЗначения
41 zak555
 
25.02.13
16:05
там можно написать что-то вида

ЗаполнитьЗначенияСвойств(Услуги.Добавить(), ВыбраннаяСтрока);
Закрыть();
42 zak555
 
25.02.13
16:06
Если Подбор Тогда
Закрыть();
конецЕсли;

это для выбора одного значения

если открывается на подбор, то форма не закрывается..
43 zak555
 
25.02.13
16:11
или я может неправильно открывают произвольную форму на выбор/подбор ?
44 Alex S D
 
25.02.13
16:24
смотри признак "Множественный выбор" у формы
45 zak555
 
25.02.13
16:25
ага, нашёл МножественныйВыбор

поставил его в истину, но строки на ТП не изменяют цвет
46 Alex S D
 
25.02.13
16:26
так ты с шифтом или
47 Alex S D
 
25.02.13
16:26
ctrl выбирай))
48 Alex S D
 
25.02.13
16:26
а я бы замутил колонку с галочкой
49 zak555
 
25.02.13
16:27
пробовал crtl|shift цвет тот же
50 zak555
 
25.02.13
22:08
как получить выбранное значение ?
51 zak555
 
25.02.13
22:29
в обработки ОбработкаВыбора формы в целом, или в ТП для которого вызывается подбор не вызывается
52 zak555
 
25.02.13
22:38
Книга знаний: v8: Организация подбора на 8.0

б) Вторым параметр указывается владелец формы - форма или элемент управления, из которого производится вызов формы выбора. После совершения выбора именно владельцу формы будет послано оповещение о выборе, которое инициирует событие "ОбработкаВыбора" (у формы или элемента формы).


сделал две ОбработкаВыбора на форму и ТЧ откуда идёт выбор, поставил точки останова -- тишина
53 zak555
 
25.02.13
23:09
основная форма документа, есть назначенные обработчики

Процедура УслугиНоменклатураНачалоВыбора(Элемент, СтандартнаяОбработка)
   СтандартнаяОбработка = Ложь;
   
   МояФормаВыбора = ПолучитьФорму("ФормаТЧСчета", Элемент);
   МояФормаВыбора.РежимВыбора = Истина;
   МояФормаВыбора.Счет = Счет;
   МояФормаВыбора.ОткрытьМодально();
КонецПроцедуры


Процедура УслугиОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
   Сообщить("УслугиОбработкаВыбора");
КонецПроцедуры

Процедура ОбработкаВыбора(ЗначениеВыбора, Источник)
   Сообщить("ОбработкаВыбора");
КонецПроцедуры


у ФормаТЧСчета есть другие обработчики

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
   ТоварыТП = ЭлементыФормы.ТП1;
   УслугиТП = ЭлементыФормы.ТП2;
   
   ТоварыТП.Значение = Счет.Товары.Выгрузить();
   ТоварыТП.СоздатьКолонки();
   
   УслугиТП.Значение = Счет.Услуги.Выгрузить();
   УслугиТП.Значение.Колонки.НомерСтроки.Имя = "НомерСтрокиДокумента";
   УслугиТП.СоздатьКолонки();
КонецПроцедуры

Процедура ТП2Выбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
   СтандартнаяОбработка = Ложь;
   ОповеститьОВыборе(ВыбраннаяСтрока);
КонецПроцедуры
54 zak555
 
25.02.13
23:11
УслугиОбработкаВыбора/ОбработкаВыбора не обрабатываются
55 zak555
 
25.02.13
23:17
заработало

МояФормаВыбора = ПолучитьФорму("ФормаТЧСчета", ЭлементыФормы.Услуги);

теперь подает в

Процедура УслугиОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
   Сообщить("УслугиОбработкаВыбора");
КонецПроцедуры
56 bazvan
 
25.02.13
23:57
Там же вроде штатнач заполнялка в которой можно все указать (и все видно)
57 bazvan
 
26.02.13
00:03
Штатная обработка вроде ицены менчть рпзрешает, и что пренести (список товпров, а можнл и из нескольких документов и по списку товаров
58 zak555
 
26.02.13
08:55
(57) что-что ?
59 zak555
 
26.02.13
09:03
почему без ОповеститьОВыборе не работает выбор ?
ведь форму явно открываю на выбор, а при клике или нажатии клавиши Enter открываемая форма не закрывается и не передаёт в обработчик УслугиОбработкаВыбора выбранное значение?


Процедура УслугиНоменклатураНачалоВыбора(Элемент, СтандартнаяОбработка)
   СтандартнаяОбработка = Ложь;
   
   МояФормаВыбора = ПолучитьФорму("ФормаТЧСчета", ЭлементыФормы.Услуги);
   МояФормаВыбора.Счет = Счет;
   МояФормаВыбора.РежимВыбора = Истина;
   МояФормаВыбора.ЗакрыватьПриВыборе = Истина;
   МояФормаВыбора.ОткрытьМодально();
   
   
КонецПроцедуры

Процедура УслугиОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
   Сообщить("УслугиОбработкаВыбора");
   
   
КонецПроцедуры

//произвольная форма выбора

Процедура ТП2Выбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
   
   
КонецПроцедуры
60 zak555
 
26.02.13
09:46
или же для произвольной формы это не катит ?
61 zak555
 
26.02.13
11:51
с общей формой такая же ерунда
62 zak555
 
26.02.13
12:11
в БП 2.0 нашёл такую процедуру
но она ниоткуда не вызывается


// Открывает форму выбора работника для подбора его в табличную часть
//
// Владелец - табличное поле с табличной частью документа
//            в такой табличной части документа подбирается физлицо из числа работников компании
//
// СтандартнаяОбработка - флаг стандартной обработки события НачалоВыбора
//
// Ключ - ключ уникальности открываемой формы
//
// Подразделение - ссылка на подразделение, если передана пустая ссылка, выбираются
//                    работники всех подразделений
//
Процедура ОткрытьФормуВыбораКандидата(Владелец, СтандартнаяОбработка, Ключ, Статус) Экспорт

   Форма = ПолучитьОбщуюФорму("ФормаВыбораКандидата", Владелец, Ключ);

   Форма.РежимВыбора      = Истина;
   Форма.СтатусКандидатов = Статус;
   Форма.ПараметрФизлицо  = Владелец.ТекущаяСтрока.Физлицо;

   Форма.Открыть();
   СтандартнаяОбработка   = Ложь;

КонецПроцедуры  // ОткрытьФормуВыбораФизлица
63 zak555
 
26.02.13
23:24
ап
64 ProProg
 
26.02.13
23:32
(0) пишешь обработку таюл частей
В ней формы. таблицу значений на морду.

Заполнение ее запросом - сколько хоч счетов, и тырыпыпы.
Вся инфачто надо.

Делаешь пометку. делаеш ькучу кнопкок - выделить все, отменить все, отметить вделенные строки (делаешь множественный выбор стпок)

Все отмечается чо надо. Кнопка ОК - готова твоя реализация
65 bazvan
 
26.02.13
23:34
(63) чего ап? Ты штатную обработку вызываемую по кнопке изменить в тч товары документа ртиу смотрел?
66 zak555
 
26.02.13
23:38
(64) ты лучше расскажи, почему произвольную форму нельзя на выбор открыть
67 ProProg
 
26.02.13
23:39
(65) читал бы внимательно агканавтер. В БП2 изменить нет кнопки
68 ProProg
 
26.02.13
23:40
написать нужную обработку час. автор потратил уже 2 суток на поиск решения самой ерундовой задачи.
69 zak555
 
26.02.13
23:41
(68) см. (59)
70 ProProg
 
26.02.13
23:43
завтра дам код безо всякой этой фигни
71 ProProg
 
26.02.13
23:44
у меня куча обработок разных табличных часйте в которых все что угодно колбасится потом в док заносится безо всякого изменения кода. никаких оповещений и прочей фигни.
72 ProProg
 
26.02.13
23:45
в скайп меня добавить. а то не факт что на форум вылезу.
возьму скину.
73 bazvan
 
26.02.13
23:50
(70) все есть в типовой, надо сохранить как внешнюю и чутка подкрутить
74 zak555
 
27.02.13
22:18
(70) где же код обещанный ? =)