0
- 20.04.2015 - 13:58
|
Итак. Имеется справочник номенклатуры. И имеется подчиненный справочник "ПоследняяПара". Смысл в том, чтобы в последний справочник складывать ту номенклатуру, которая будет участвовать в данной акции. Ну, соответственно, документом, проведение - снятие проведения. Проблема в том, что поиск при отмене проведения ну никак не хочет работать. Я начинающий, прошу не пинать. Про то что можно просто на номенклатуру добавить реквизит и не париться я знаю. Просто хочу в данном случае понять чего я не допонимаю. Спасибо, коллеги ! ++++++++++++++++++++++++++++++++ Процедура ОбработкаПроведения() //Здесь следует написать алгоритм проведения документа СпрПар = СоздатьОбъект("Справочник.ПоследняяПара"); ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 Цикл СпрПар.Новый(); СпрПар.Номенклатура = Номенклатура; СпрПар.Записать(); Сообщить("Товар: "+Номенклатура +" добавлен в справочник участников акции последняя пара"); КонецЦикла; КонецПроцедуры Процедура ОбработкаУдаленияПроведения() // Процедура выполняется при отмене проведения // или удалении документа // Номенклатура — это реквизит документа Спр = СоздатьОбъект("Справочник.ПоследняяПара"); Спр.ВыбратьЭлементы(); ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 Цикл Сообщить(Номенклатура); Сообщить(Спр.НайтиПоКоду(Номенклатура.Код)); // СпрПар.Удалить(1); КонецЦикла; КонецПроцедуры | |
1
- 20.04.2015 - 14:14
|
Ищи не по коду, а по реквизиту "Номенклатура". Поскольку коды-то разные... | |
2
- 20.04.2015 - 14:16
|
И опять жеж, ничего не понятно с подчинённостью. Из твоего кода нигде не видно, что справочник "ПоследняяПара" чему-либо подчинён. | |
3
- 20.04.2015 - 14:23
| Дело в том, что у меня номенклатура имеет дополнительные реквизиты как то артикул цвет размер наименование... Последняя пара имеет реквизит Номенклатура из справочника номенклатура. | |
4
- 20.04.2015 - 15:10
|
(0) В таком виде работать со справочником из документа не надо, а если пользователь возьмет и перепроведет документ, раз так 5 ? В ТиС есть справочник прайс-лист, используй его (заведи прайс лист "ПоследняяПара" и добавляйте в него нужную номенклатуру, не нужную удаляйте) и никакие дополнительные справочники городить не нужно. А уже обработку списка номенклатуры этого прайс листа добавь там где нужно. | |
5
- 20.04.2015 - 15:15
| (+4)для отбора номенклатуры списком можно так же использовать "Свойства номенклатуры", в общем, вариантов много | |
6
- 20.04.2015 - 15:46
| (4) ну так и пишется снятие проведения для удаления позиций номенклатуры из справочника ПоследняяПара. Я же говорю, что в данном случае решение не правильное, я это понимаю, я хочу разобраться почему сделать то у меня не получается... | |
7
- 20.04.2015 - 15:51
|
Для поиска используй ВыбратьПоРеквизиту, предварительно поставив свойство "Сортировка" для реквизита "Номенклатура". А лучше сделай подчинённый справочник. И учти, что при непосредственном удалении элемента сбивается выборка. Сначала собирай в список значений, потом удаляй. | |
8
- 20.04.2015 - 16:01
| (7) Извини, а можно пример ? Реально, запутался. | |
9
- 20.04.2015 - 16:05
|
(6)"решение не правильное, я это понимаю" - это хорошо. Значит удаляй свой справочник и код из проведения документа, используй по максимуму штатные механизмы. P.S. При перепроведении вызов процедуры "ОбработкаУдаленияПроведения" не производится. | |
10
- 20.04.2015 - 16:12
|
Даже если учесть (9) мне код видится так... Спр = СоздатьОбъект("Справочник.ПоследняяПара"); ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 Цикл Если Спр.НайтиПоКоду(Номенклатура.Код)) = 1 Тогда Попытка СпрПар.Удалить(1); Исключение Сообщить(ОписаниеОшибки); КонецПопытки; КонецЕсли; КонецЦикла; | |
11
- 20.04.2015 - 16:18
|
(8) УдаляемыйТовар = СоздатьОбъект("ТаблицаЗначений"); УдаляемыйТовар.НоваяКолонка("Товар"); Спр = СоздатьОбъект("Справочник.ПоследняяПара"); ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 Цикл Если Спр.НайтиПоКоду(Номенклатура.Код)) = 1 Тогда УдаляемыйТовар.НоваяСтрока(); УдаляемыйТовар.Товар = Спр.ТекущийЭлемент(); КонецПопытки; КонецЕсли; КонецЦикла; УдаляемыйТовар.ВыбратьСтроки(); Пока УдаляемыйТовар.ПолучитьСтроку()=1 Цикл Если Спр.НайтиЭлемент(УдаляемыйТовар.Товар) = 1 Тогда Спр.Удалить(1); КонецЕсли; КонецЦикла; | |
12
- 20.04.2015 - 16:19
| (11) забыл удалить "КонецПопытки;" | |
13
- 20.04.2015 - 16:25
| Спасибо, буду пробовать. Надо почитать все таки про подчиненные справочники :( | |
14
- 20.04.2015 - 16:33
| (11,13)не взлетит. | |
15
- 20.04.2015 - 16:42
| (14) Хорошо, мне просто нужен пример как сделать так чтобы подобное решение взлетело ... | |
16
- 20.04.2015 - 16:46
|
15-VASH > чтобы взлетело - выбирают нужный вариант решения. а ты какото свинтпрульный аппарат сделал и хочешь чтобы он как истребитель летал... | |
17
- 20.04.2015 - 16:48
|
а утебя вместо выбора варианта решения херня какая-то типа хочу забить гвоздь в рельсу - не получается, как забить гвоздь в рельсу? а ЗАДАЧА_то стояла не про забивание гвоздя в рельсу, а совсем о другом.. а у тебя - гвоздь и рельса | |
18
- 20.04.2015 - 16:50
|
(15) для начала нужно расписать подробно цель и смысл задачи, для которой необходим взлет... | |
19
- 20.04.2015 - 18:37
|
Если я правильно (0) понял, то надо пометить товары, участвующие в акции. Тогда, на мой взгляд, лучше в справочнике "Номенклатура" создать периодический реквизит "УчаствуетВАкции", а при проведении документа использовать УстановитьРеквизитСправочника(Товар,"УчаствуетВАкц ии",1,ДатаС) УстановитьРеквизитСправочника(Товар,"УчаствуетВАкц ии",0,ДатаПо) | |
20
- 20.04.2015 - 20:16
| Ребята, я просто хочу разобраться. То что сказал уважаемый (19) - согласен. Прсото у меня следующая задача - создавать справочник с количеством бракованного товара с привязкой не только по номенклатуре, но и по магазинам. Вот я и тренеруюсь на кошках. | |
21
- 20.04.2015 - 21:05
| (20) что дальше с этой информацией планируете делать ? | |
22
- 21.04.2015 - 09:16
| (21) Далее - продажи. На ТД стоят те же базы, УРБД, так вот чтобы могли или нет продать ранее разрешенный бракованный товар. | |
23
- 21.04.2015 - 13:00
| (22)Решение о продаже/не продаже принимается в центре? Весь список бракованного товара запрещается/разрешается целиком или по позициям брака? | |
24
- 21.04.2015 - 13:18
| Ребята, по коду он ищет по коду именно справочника ПоследняяПара. А как сделать чтобы он искал по коду Родителя, то есть Номенклатура ? | |
25
- 21.04.2015 - 13:19
| (23) По позициям, причем не запрещается, а будет скидка, но это не важно. | |
26
- 21.04.2015 - 18:19
|
(24) внимательно прочитал (9)? | |
27
- 21.04.2015 - 20:37
| 20-VASH > ты дятел. откуда ты знаешь "..у меня следующая задача - создавать справочник с количеством бракованного товара с привязкой не только по номенклатуре, но и по магазинам" - это то что ты описал - это не задача, это некий выбраныый тобой способ решения какой-то задачи. какая именно задача стоит - до сих пор ты ВНЯТНо изложить не смог. есть смонения что сможешь внятно реализвать то, что не смог внятно изложить | |
| Интернет-форум Краснодарского края и Краснодара |