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