#0
by Umka-Kate
мне нужно изменить цены в справочнике, документом. при некоторых условиях мне нужно по определенной позиции номенклатуры получить ее цену из последнего документа "реализация" как это сделать?
#0
by Umka-Kate
мне нужно изменить цены в справочнике, документом. при некоторых условиях мне нужно по определенной позиции номенклатуры получить ее цену из последнего документа "реализация" как это сделать?
#4
by Umka-Kate
а как проверить есть ли в данном документе данная номенклатура? проверять по очереди?только так?
#9
by SiMazx
ПоследнийДокРеализацииСНужнойНоменклатурой<>ПоследнийПроведенныйДокРеализацииСделавшийДвижениеПоЭтойНоменклатуре
#10
by Umka-Kate
спасибо на это как раз мозгов хватило...) просто если проверять все документы в обр порядке на наличие опред номенклатуры очень долго(4247 позиций номенклатуры)
#13
by Asmodeus
А если через запрос? Условие - нужный товар. Перечень возможных документов. Группировка День, упорядочить в обратном порядке (правда, не знаю - можно ли упорядочивание в обратном порядке делать?)
#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
задача поставлена я ее не могу менять... придется тогда все документы проводить.. спасибо сейчас попробую
#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 секунды на исполнении... Эх, молодежь, не работали вы на медленных машинах... Код оптимизировать не хотите. Разбаловали вас мощные машины..
#40
by Umka-Kate
Вы , дядя:0), не понимаете, чтобы что-то оптимизировать, надо чтобы это что-то работало, а я тут по кол-ву задаваемых маразматичных вопросов первое место займу... но огромное спасибо я запомню.. и подсказывайте мне в дальнейшем, пожалуйста..
#43
by Stan from Piter
Тогда проверь, а есть ли вообще движения по данному товару? Может его вообще не быть... А коды у тебя уникальные?
#46
by Umka-Kate
есть специально в тестовой сделано... и движения есть и номенклатура наверное фильтр неправильно что-то делает... вообще я уже это запросом переделываю...
#48
by DRB
А нет ли записи периодической приходной цены в момент проведения - можешь проверить? Это самый легкий путь кстати... Если чайник - посмотри есть ли в движениях приходных накладных движения реквизитов справочников
#53
by DRB
А откуда взял что не определяется Номенклатура? Может так: СпрН.ЦенаН=Рег.ТекущийДокумент.Цена должно быть?
#54
by Umka-Kate
в отладчике не показывает мне не в справочник ее надо записать, а в документ вывести не проверяет Если Рег.ТекущийДокумент.Номенклатура=Спр.ТекущийЭлемент Тогда
#55
by Den
А ежели через НайтиСсылки? Если обработка идет документом, то в принципе, можно накидать всю номенклатуру, получить ссылки а потом анализировать.
#59
by Umka-Kate
Сделано! надо документ спозицинировать!(ну или как это называется) просто по Рег.ТекущийДокумент - ни фига строки не получает... ишшо вопрос можно ли найти строку документа по какой было движение, а то циклом долго документы большие?..
#62
by DRB
Самый простой вариант (делать АККУРАТНО!) Работает моментально и без перебора. 1. Выгоняем всех из базы и лочим ее (каталог переименовываем - зачем - узнаешь дальше) 2. Снимаем у приходной накладной галочку Автогматическое удаление движений 3. Создаем периодический реквизит ЦЕНАПрихода у справочника ТМЦ 4. Дописываем в модуль проведения приходников строчки типа того: ... то что у тебя дальше не важно КонецПроцедуры; 5. Процедура ПроставитьЦены такая будет: 7. Запускаем эту обработку только 1раз!!!! 8. Заходим в конфигуратор - ставим галочку Автоматическое удаление движений; 9. Удаляем одну строчку с приходной накладной - Возврат; (чтобы проведение шло и дальше) 10. Пускаем пользователей в базу. 11. Все.. Дальше просто ====================== По Поводу а посмотри в модуле приходной - есть ли ПривязыватьСтроку ====================== Плюс ко всему - а регистр оборотный или остатков? если остатков - посмотри есть ли движения по оборотным регистрам - делается намного быстрее если не подойдет описанный мною вариант
#63
by Stan from Piter
1. Долго, но надежно: 2. Быстро, но ненадежно (при проведении ОБЯЗАТЕЛЬНО должна быть привязка к номеру строки!!!) Документ.ПолучитьСтрокуПоНомеру(Рег.НомерСтроки); Ну и т.д.
#68
by DRB
Зачем так сложно и что получишь в итоге? 1. Не меняются ни проводки ни движения, добавляются только движения для справочников. 2. В новых приходах тоже это будет уже проводится 3. У любого ТМЦ на любую дату получишь цену прихода 4. и если надо получишь и документ который эту цену установил хотя цель по моему как раз приходнуй цену получить последнюю
#69
by DRB
только это вариант если в модуле стоит ПривязыватьСтроку при движениях плюс быстрее все таки делать не по регистру остатков а по регистру оборотов..
#74
by Stan from Piter
Ага был у меня такой клиент .... Зазодил он значится в товар, что-то там менял, говорил "Изменить все пердические элементы", а потом думал, откуда у него 1 марта появилась цена, когда он ничего не покупал...
#76
by Stan from Piter
Я так понимаю у человека такая проблема: Народ хочет продать товар по последней закупке ...
#77
by DRB
И еще - движения по регистру делаются не только расходными накладными - не забывай проверять - реализация ли это... и некоторые конфы возврат расходной накладной делают... так что не забудь и эти проверки кинуть.. еще бывают перемещения внутренние....
#80
by DRB
Нет, скорее чтобы в расходник попадали цены последней продажи автоматом а для этого мой вариант таки самый простой иначе задолбутся ждать если такой товар продавался год назад... а если база обрезана?
#81
by Stan from Piter
Есть, есть, такая галочка .... А отпускные цены ты тоже будешь через документ менять? см. в плане оптимизации
#83
by Den
Зачем через документ? Меняй через обработку. Да еще отслеживай изменения, чтобы потом клиента носом ткнуть в ту самую лужу, в которую он тебя пытается посадить
#86
by Stan from Piter
Давай не будем гадать, а спросим Umka-Kate... зачем ей это, а уж из поставленной задачи будем решать, что лучше ... Сорри, за повтор - на ноуте слишком близко расположены клавиши :-))
#87
by Stan from Piter
НАРОД!!!! А ВЫ ВСЕ ВНИМАТЕЛЬНО ЧИТАЛИ КОД????? А КТО БУДЕТ ПРОВЕРЯТЬ ЭТО ТОЧНО БЫЛ ПРИХОД ТОВАРА? А МОЖЕТ ЭТО РАСХОД??? ВО ПРИКОЛ ПОЛУЧИЛСЯ!!!
#89
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. Позиции, на которые не найдены закупочные цены, выводятся отдельным списком с наименованием, остатком и складом. это алгоритм я по нему пишу документ!(это тоже в заявке) а зачем и почему меня особо не волнует...
#95
by Stan from Piter
Это какой-то бред.. Ты уж тогда опиши весь бизнес-процесс, а так ни ... не понятно.
#96
by DRB
Хи... так тебе отбор по последнему документу по складу и по товару нужен... мой вариант отпал сразу - по складу привязать надо больше манипуляций сделать :-)) а вообще чето мне не понятно зачем это.... Типа распродажа остатков?
#97
by Umka-Kate
ща.. и сразу работу подыскивать)) вся заявка перед вами по алгоритму и делаю...вопросы задаю только технические.. так и работаю...
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Получить id и получить объект по id
- Как программно получить получить пароль пользователя в текущем сеансе работ
- Как получить разность дат (Нужно получить количество дней)
- Как получить ГУИД элемента по OLE, записать и получить по нему ссылку?
- Как получить Цену номенклатуры по наименованию?
- Как получить цену номенклатуры 1с 7.7 через com объект
- УТ 11.1 - получить цену номенклатуры
В этой группе 1С
- списание сырья и расчет себестоимости в 1с производство 7,7
- Программы ЛадаСофт (импорт в 1с)
- Штриховка ячейки таблицы
- Как сделать, чтоб при сохранении тип файла был 'XLS', а не 'MXL'?
- Возможно ли в Комплексной конфигурации...
- Зависает процесс 1С ОЛЕ только при работе более 20 мин....
- Добавить субконто в план счетов ЗарпКадр
- Доступ к внешним отчетам.
- параметр страницы "По ширине листа"
- следующий номер документа из 999 становится 100
- УстановитьАтрибут и ПолучитьАтрибут
- Как вводить начальные остатки в УПП?
- Прогресс кибернетики=регресс кибернетиков?
- Вопрос по заданию к аттестации по 1С: Специалист (Бухгалтерия7.7)
- Проводник для 1С++
- Повторно!! Чистим 1Sconst.dbf
- Настройка интервала дат просмотра журналов
- Как оформить передачу коробки 1С от одной фирме другой?
- Как узнать на каком счете «висит» субконто?
- Как в звпросе разбить период на месяцы