Как получить цену номенклатуры из последнего документа #7567


#0 by Umka-Kate
мне нужно изменить цены в справочнике, документом. при некоторых условиях мне нужно по определенной позиции номенклатуры получить ее цену из последнего документа "реализация" как это сделать?
#0 by Umka-Kate
мне нужно изменить цены в справочнике, документом. при некоторых условиях мне нужно по определенной позиции номенклатуры получить ее цену из последнего документа "реализация" как это сделать?
#1 by Crew
Сделай выборку документов и ОбратныйПорядок(<Режим>)
#2 by Валентин
или по регистру - находишь последний документ двигающий товар
#3 by Валентин
или по регистру - находишь последний документ двигающий товар
#4 by Umka-Kate
а как проверить есть ли в данном документе данная номенклатура? проверять по очереди?только так?
#5 by Umka-Kate
я - чайник... можно поподробнее?..
#6 by Filippych
так ты спозиционирован(а) на последний док реализация. Успехов. дальше Сам(а)
#7 by SiMazx
ПоследнийДокРеализации<>ПоследнийДокРеализацииСНужнойНоменклатурой
#8 by SnarkHunter
Документов в базе года за три... Ох и скорость будет...
#9 by SiMazx
ПоследнийДокРеализацииСНужнойНоменклатурой<>ПоследнийПроведенныйДокРеализацииСделавшийДвижениеПоЭтойНоменклатуре
#10 by Umka-Kate
спасибо на это как раз мозгов хватило...) просто если проверять все документы в обр порядке на наличие опред номенклатуры очень долго(4247 позиций номенклатуры)
#11 by Filippych
#12 by Filippych
ошибся я. тогда переберай все доки, в обратном порядке.
#13 by Asmodeus
А если через запрос? Условие - нужный товар. Перечень  возможных документов. Группировка День, упорядочить в обратном порядке (правда, не знаю - можно ли упорядочивание в обратном порядке делать?)
#14 by SiMazx
А зачем группировка День?
#15 by SnarkHunter
Обход группировки можно в обратном порядке делать...
#16 by Art-soft
Помоему через регистр гораздо проще
#17 by Asmodeus
Ну, чтобы, типа самый последний документ быстрее выловить... Я ее не использовал ни разу, но узнал о ней с удовольствием, т.к. хотел какую-то инфу представлять на временной оси... :-)
#18 by Asmodeus
Клево, блин! Мало того, что у меня этот топик неправильно отражается (не влезает в экран), так еще и ответ мой сожрал!
#19 by Asmodeus
О! Появился! Обновить нажимал - поэтому ногами не пинайте... А за пределы экрана все равно вылазит...
#20 by Umka-Kate
мне тоже так кажется только подскажите как это сделать... а то даже запросом очень долго будет
#21 by SnarkHunter
Чем решать задачу переборами и запросами, не проще ли хранить "цену из последнего документа реализация" в том же справочнике Номенклатура?
#22 by Art-soft
Регистр.ВыбратьДвижения; Далее ищеш (как удобно) последнее движение в полученной выборке и Док=Регистр.ТекущийДокумент;(Получаеш документ, выполневший движение) а дальше все просто...
#23 by Art-soft
Регист.ПолучитьДвижение; Док=Регистр.ТекущийДокумент;(Получаеш документ, выполневший движение) а дальше все просто...
#24 by Umka-Kate
задача поставлена я ее не могу менять... придется тогда  все документы проводить.. спасибо сейчас попробую
#25 by Asmodeus
А страница этого топика не у всех шире экрана? Это только мне так "повезло"?
#26 by Umka-Kate
у меня тоже глюк
#27 by SiMazx
(25,26) Это я виноват... Смотрите
#28 by Umka-Kate
продолжаю разговор...( сделано вот так: где может быть ошибка?
#29 by Asmodeus
В номенклатуре, видимо... Как позиционируешь?
#30 by Umka-Kate
еще позиционируется только на одном документе(непонятно как его находит)
#31 by Asmodeus
#32 by Umka-Kate
номенклатура правильно выбирается...
#33 by Umka-Kate
ето в функции, туда номенклатура правильно передается
#34 by Asmodeus
А ты попробуй... :-)
#35 by Stan from Piter
1. А зачем переменная Док? 2. "Рег.ПолучитьДвижение<>0" проверка на больше-меньше работает дольше, чем сравнение с 1 Рег.ПолучитьДвижение=1 3. Если Рег.ТекущийДокумент.Номенклатура=Номенклатура Тогда                                     ЦенаН=Рег.ТекущийДокумент.Цена;                               КонецЕсли. А если в документе 1000 позиций, ты их так и будешь проверять все? Поставь "Прервать".
#36 by Umka-Kate
спасибо 1.Док.ВыбратьСтроки; раньше так было - но в Док ничего не передавал.. 2.ок 3.прервать у меня уже было тут можно вообще без цикла мне только один документ нужен... это уже остатки испробованных маразмов...(
#37 by Stan from Piter
"Остатки испробованных маразмов" - минус 1,5-2 секунды на исполнении... Эх, молодежь, не работали вы на медленных машинах... Код оптимизировать не хотите. Разбаловали вас мощные машины..
#38 by Umka-Kate
#39 by Stan from Piter
#40 by Umka-Kate
Вы , дядя:0), не понимаете, чтобы что-то оптимизировать, надо чтобы это что-то работало, а я тут по кол-ву задаваемых маразматичных вопросов первое место займу... но огромное спасибо я запомню.. и подсказывайте мне в дальнейшем, пожалуйста..
#41 by Umka-Kate
суть в том, что он мне в отладчике все время получитьдвижение=0 выдает...
#42 by Stan from Piter
Так! Конфигурация - торговля?
#43 by Stan from Piter
Тогда проверь, а есть ли вообще движения по данному товару? Может его вообще не быть... А коды у тебя уникальные?
#44 by Umka-Kate
нее у меня комплексная
#45 by Stan from Piter
См.
#46 by Umka-Kate
есть специально в тестовой сделано... и движения есть и номенклатура наверное фильтр неправильно что-то делает... вообще я уже это запросом переделываю...
#47 by GrayT
Не уверен, что ВыбратьДвижения без начальной даты хорошая идея.
#48 by DRB
А нет ли записи периодической приходной цены в момент проведения - можешь проверить? Это самый легкий путь кстати... Если чайник - посмотри есть ли в движениях приходных накладных движения реквизитов справочников
#49 by Umka-Kate
опа! с начальной датой идет...
#50 by Umka-Kate
теперь Рег.ТекущийДокумент.Номенклатура не определяется...
#51 by GrayT
Выбери строки у текущего документа
#52 by Umka-Kate
дык Рег.ТекущийДокумент.ВыбратьСтроки;
#53 by DRB
А откуда взял что не определяется Номенклатура? Может так: СпрН.ЦенаН=Рег.ТекущийДокумент.Цена должно быть?
#54 by Umka-Kate
в отладчике не показывает мне не в справочник ее надо записать, а в документ вывести не проверяет Если Рег.ТекущийДокумент.Номенклатура=Спр.ТекущийЭлемент Тогда
#55 by Den
А ежели через НайтиСсылки? Если обработка идет документом, то в принципе, можно накидать всю номенклатуру, получить ссылки а потом анализировать.
#56 by DRB
Давай весь код в студию
#57 by Den
Это ты кому?
#58 by DRB
это для а то так долго гадать будем
#59 by Umka-Kate
Сделано! надо документ спозицинировать!(ну или как это называется) просто по Рег.ТекущийДокумент - ни фига строки не получает... ишшо вопрос можно ли найти строку документа по какой было движение, а то циклом долго документы большие?..
#60 by SnarkHunter
Интересно, до 100 постов дойдет?..
#61 by Umka-Kate
жалко?
#62 by DRB
Самый простой вариант (делать АККУРАТНО!) Работает моментально и без перебора. 1. Выгоняем всех из базы и лочим ее (каталог переименовываем - зачем - узнаешь дальше) 2. Снимаем у приходной накладной галочку Автогматическое удаление движений 3. Создаем периодический реквизит ЦЕНАПрихода у справочника ТМЦ 4. Дописываем в модуль проведения приходников строчки типа того:   ... то что у тебя дальше не важно КонецПроцедуры; 5. Процедура ПроставитьЦены такая будет: 7. Запускаем эту обработку только 1раз!!!! 8. Заходим в конфигуратор - ставим галочку Автоматическое удаление движений; 9. Удаляем одну строчку с приходной накладной - Возврат; (чтобы проведение шло и дальше) 10. Пускаем пользователей в базу. 11. Все.. Дальше просто ====================== По Поводу а посмотри в модуле приходной - есть ли ПривязыватьСтроку ====================== Плюс ко всему - а регистр оборотный или остатков? если остатков - посмотри есть ли движения по оборотным регистрам - делается намного быстрее если не подойдет описанный мною вариант
#63 by Stan from Piter
1. Долго, но надежно: 2. Быстро, но ненадежно (при проведении ОБЯЗАТЕЛЬНО должна быть привязка к номеру строки!!!)                 Документ.ПолучитьСтрокуПоНомеру(Рег.НомерСтроки); Ну и т.д.
#64 by SnarkHunter
Нет-нет... Продолжайте...
#65 by Umka-Kate
шайтан...
#66 by Umka-Kate
гран мерси
#67 by Stan from Piter
Вот кажись наиболее быстрый вариант...
#68 by DRB
Зачем так сложно и что получишь в итоге? 1. Не меняются ни проводки ни движения, добавляются только движения для справочников. 2. В новых приходах тоже это будет уже проводится 3. У любого ТМЦ на любую дату получишь цену прихода 4. и если надо получишь и документ который эту цену установил хотя цель по моему как раз приходнуй цену получить последнюю
#69 by DRB
только это вариант если в модуле стоит ПривязыватьСтроку при движениях плюс быстрее все таки делать не по регистру остатков а по регистру оборотов..
#70 by Den
Глянь повнимательнее в . Там есть слово "реализация". При чем здесь приход?
#70 by DRB
,,, :-)))
#72 by DRB
Ну ладно - тогда это же в реализацию засунуть - невнимательно прочитал - смысл тот же..
#73 by Umka-Kate
ШАЙТАН!!..
#74 by Stan from Piter
Ага был у меня такой клиент .... Зазодил он значится в товар, что-то там менял, говорил "Изменить все пердические элементы", а потом думал, откуда у него 1 марта появилась цена, когда он ничего не покупал...
#75 by DRB
ИзменяетсяТолько документами галочка есть для этого воощето
#76 by Stan from Piter
Я так понимаю у человека такая проблема: Народ хочет продать товар по последней закупке ...
#77 by DRB
И еще - движения по регистру делаются не только расходными накладными - не забывай проверять - реализация ли это... и некоторые конфы возврат расходной накладной делают... так что не забудь и эти проверки кинуть.. еще бывают перемещения внутренние....
#78 by Den
Или купить по последней продаже... :-)))
#79 by Den
За что ты его так???
#80 by DRB
Нет, скорее чтобы в расходник попадали цены последней продажи автоматом а для этого мой вариант таки самый простой иначе задолбутся ждать если такой товар продавался год назад... а если база обрезана?
#81 by Stan from Piter
Есть, есть, такая галочка .... А отпускные цены ты тоже будешь через документ менять? см. в плане оптимизации
#82 by Stan from Piter
Давай не будем гадать, а спросим Umka-Kate... зачем ей это, а уж из
#83 by Den
Зачем через документ? Меняй через обработку. Да еще отслеживай изменения, чтобы потом клиента носом ткнуть в ту самую лужу, в которую он тебя пытается посадить
#84 by SnarkHunter
Вторая здравая мысль в этой ветке...
#85 by SnarkHunter
(+84)Это по поводу
#86 by Stan from Piter
Давай не будем гадать, а спросим Umka-Kate... зачем ей это, а уж из поставленной задачи будем решать, что лучше ... Сорри, за повтор - на ноуте слишком близко расположены клавиши :-))
#87 by Stan from Piter
НАРОД!!!! А ВЫ ВСЕ ВНИМАТЕЛЬНО ЧИТАЛИ КОД????? А КТО БУДЕТ ПРОВЕРЯТЬ ЭТО ТОЧНО БЫЛ ПРИХОД ТОВАРА? А МОЖЕТ ЭТО РАСХОД??? ВО ПРИКОЛ ПОЛУЧИЛСЯ!!!
#88 by DRB
а я о чем тебе твердю в :-))
#89 by DRB
Расскажи зачем тебе это надо?? Если одноразово - один вариант если постоянно то делай другой вариант
#90 by Stan from Piter
Потерял нить разговора... Посыпал голову пеплом...
#91 by Stan from Piter
А куда зачинщик разговора пропал?
#92 by DRB
я уже тоже начал запутыватся... :-) Умка-кейт объясни зачем тебе это?
#93 by Umka-Kate
отвечаю, у меня куча заявок на изменение базы нынче делаю эту: Алгоритм исправления московских цен: 1. Отбираем закупочные и Московские продажные цены, равные 0, 1, 0,95 2. Если есть продажная цена Вологда, не равная 0, 1, 0,95, 1,05 - берем ее и ставим, как Московскую продажную. 3. Если продажная цена Вологда равна 0, 1, 0,95, 1,05 - берем цену из последнего документа Реализация ( по любому из складов, но в первую очередь Вологодского) 4. Если нет Реализации по данным позициям - выводим отдельный список с наименованием, остатком и складом 5. Закупочная цена берется из последнего документа Поступление ТМЦ по любому из складов, но в первую очередь по Московскому 6. Позиции, на которые не найдены закупочные цены, выводятся отдельным списком с наименованием, остатком и складом. это алгоритм я по нему пишу документ!(это тоже в заявке) а зачем и почему меня особо не волнует...
#94 by DRB
Как часто это будет делаться?
#95 by Stan from Piter
Это какой-то бред.. Ты уж тогда опиши весь бизнес-процесс, а так ни ... не понятно.
#96 by DRB
Хи... так тебе отбор по последнему документу по складу и по товару нужен... мой вариант отпал сразу - по складу привязать надо больше манипуляций сделать :-)) а вообще чето мне не понятно зачем это....   Типа распродажа остатков?
#97 by Umka-Kate
ща.. и сразу работу подыскивать)) вся заявка перед вами по алгоритму и делаю...вопросы задаю только технические.. так и работаю...
#98 by SnarkHunter
Канатчикова дача... Я так и знал...
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С