К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Помогите разобраться с проблемой 7.7

Гость
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 > ты дятел. откуда ты знаешь "..у меня следующая задача - создавать справочник с количеством бракованного товара с привязкой не только по номенклатуре, но и по магазинам" - это то что ты описал - это не задача, это некий выбраныый тобой способ решения какой-то задачи. какая именно задача стоит - до сих пор ты ВНЯТНо изложить не смог. есть смонения что сможешь внятно реализвать то, что не смог внятно изложить


К списку вопросов






Copyright ©, Все права защищены