#0
by twilight5023
Нашли серьезную ошибку при пересчете цен в документе реализации при смене контрагента. Чтобы ни у кого не возникало сомнений, что ошибка действительно присутствует, ниже я приведу подробную схему действий того, как ее можно воспроизвести. Все эксперименты проводились на чистой типовой ТиС 927. Итак, начальные условия: 1. Создаем двух контрагентов "ИП Иванов" и "ИП Петров", в свойствах договора указываем для Иванова указываем тип цен по-умолчанию - "Цены для Иванова", у Петрова в договоре - "Цены для Петрова", естественно предварительно создав их в справочнике цен. 2. Далее в справочнике номенклатуры создаем новый товар ("Товар"), указываем в качестве базовой единицы штуку. Затем открываем справочник единиц для "Товар" и заносим туда, например, ящик, с коэффициентом пересчета количества 30. Т.е. имеем 30 штук товара в ящике. Далее в справочнике "Цены номенклатуры" для этого товара устанавливаем два типа цен, те, которые для Иванова - 5 руб., для Петрова - 10 руб за шт. 3. Делаем приход товара / ввод начальных остатков, вообщем смысл в том, чтобы товар появился на складе (склады у нас оптовые). 4. И теперь кульминация... Создаем документ реализации на Иванова. В подборе выбираем "Товар", 1 ящик, соответственно в табличной части получаем, что отписали мы ему ящик (30 штук) на сумму 150 рублей. Документ не проводим, потому что на самом деле мы хотели выписать этот товар Петрову. Переходим в шапку и меняем контрагента на Петрова. 5. Естественно выскакивает предупреждение, мол, "Договор с контрагентом предусматривает параметы взаиморасчетов, отличные от указанных в документе. Тип цен документа: "Цены для Иванова", договора "Цены для Петрова". Пересчитать документ в соответствии с договором?". Ну естественно, что мы хотим пересчитать, жмем "Да". По-идее, так как контрагент теперь выбран правильно и цены пересчитаны, можно проводить документ, отпускать товар со склада и т.п. 6. Но мы же люди дотошные, поэтому решаем проверить, а правильно ли он пересчитал цены? Заходим в табличную часть и ужасаемся. Там стоит 1 ящик по цене 10 рублей за ящик (!!!), т.е. он изменил цену, но поставил цену штуки для ящика, а в ящике их между прочим 30. Т.о. мы продаем 30 штук по цене одной, т.е. коэффициент пересчета количества в этом случае просто напросто НЕ УЧИТЫВАЕТСЯ! БУДЬТЕ ВНИМАТЕЛЬНЫ! 7. Мы работаем с 927 достаточно давно, сегодня написал обработку для просмотра всех накладных за все время работы, на предмет поиска подобной ошибки (строго говоря у меня просто сравнивается цена в документе и цена в справочнике цен на день документа, если отличается, то обработка выводит реквизиты документа, строку, ну и собственно отличия, т.е. показывает какая цена стоит в документе и какая в справочнике, одновременно подсчитывая общую сумму "подарка" клиенту). Оказывается некоторым клиентам мы все же так отпустили, ящики / коробки по цене за штуку. Хорошо хоть не составами торгуем. Теперь собственно мои мысли на счет как это все исправить: 1. Самое простое, запретить смену контрагента в самом документе, либо обязать операторов при смене контрагента, пересчитывать цены самостоятельно. Т.е. находясь в табличной части вручную жмем "Цены", меняем их снова на Иванова, перессчитываем, потом меняем на обратно на Петрова, в результате цена будет корректной. Но здесь присутствует человеческий фактор, поэтому это не выход. 2. Вариант второй. Найти все-таки где криворукие программисты забыли умножить цену на коэффициент пересчета. Покопавшись в глобальном модуле нашел следующее (обратите внимание на комментарий "если изменился тип цен, тогда изменим цены"): [Глобальный модуль] А теперь посмотрим на обработку "ИнформацияОценах", она вызывается когда мы просто пересчитываем цены, находясь в табличной части документа. Заметили разницу? Там цены приводятся к одной единице, чтобы понять смысл этого, лучше прогнать оба куска кода (из глобального модуля и этой обработки) под отладчиком: [Обработка.ИнформацияОценах.Форма] Предлагаю следующий вариант исправления ошибки: [Глобальный модуль]
#2
by twilight5023
Что "а единицы измерения"? А единицы измерения там учитываются в строке ЦенаЦены = (ЦенаЦены * Конт.Коэффициент) / ЕдЦены.Коэффициент, я же говорил, что лучше посмотреть этот кусок кода под отладчиком, чтобы ясно себе представлять какие переменные за что отвечают. Вообщем у себя мы уже поправили - все замечательно, ну а тем, кто до сих пор пользуется 927 или более ранними релизами ТиС'а без исправлений - я не завидую, т.к. шанс отпустить коробку / ящик по цене одной штуки очень велик. Кстати, посмотрел тут 939 - там уже все поправлено, с какого именно релиза внесены исправления - не знаю.
#4
by twilight5023
Там столько разнообразных дописок, что это мягко говоря проблематично. К тому же в этой базе учет за три года, вообще конечно есть планы поставить 939, постепенно перенести в нее все изменения, которые у нас в 927, остатки, долги контрагентов, но это планы будущее.
#5
by twilight5023
Судя по моим наблюдениям люди и с более ранними релизами до сих пор работают, просто хотел рассказать о найденной ошибке, мало ли кто еще с ней работает, а ошибка-то серьезная.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Кто знает, Рарус-Магазин и ТиС 9.2 .Что не умеет делать ТиС по сравн. с Рарус?
- УРБД: на половине периферийных баз невосст. ошибка БД код -4 ошибка I/O
- Перенос номенклатуры из ТиС 9.2 в ТиС 9.2
- Выгрузка данных из ТиС 9.2 в ТиС 9.2
- В глобальном модуле пишет ошибка переменная не определенна....
- Ошибка выполнения запроса "Ошибка при выполнении операции над данными: Ошибка SQL: Де
- УРИБ: при обмене "Ошибка при распаковке данных из архива : Ошибка при вызове конструк
- УПП РАУЗ расчет с/с ошибка (больше отклонение решений и результат SQL ошибка)
- Ошибка при вызове web-сервиса 1C 8.3 (Внутренняя ошибка. Ошибка инициализации б)
В этой группе 1С
- Как убрать "Сервис" в интерфейсе пользователя?
- Как отразить в ЗиК (укр) если чел сменил фамилию?
- v77: Обработка "1С:Предприятие - Клиент банка"
- Как настроить печать из под Citrix? HELP!!!!
- Посоветуйте весы для поключения к компу и работы с 1С
- Нормы трудозатрат по программированию
- Как в семерке получить уникальный идентификатор документа?
- Камин - прием совместителей внутренних
- Как прописать базу пользователю?
- Запрос по реквизитам и реквизитам табличной части документа с условием
- Как получить в запросе итог по колонке документа?
- v8. Каким отчетом в УПП, УТ посмотреть остатки по складам в разрезе организаций?
- Обновление 1с 8.0 без прав админа у клиента. Как?
- Как программно скопировать документ?
- Как из 7.7 получить и прочитать данные по регистрам сведений в 1с8.0 через OLE
- ЗиКа 260 выгрузка В Бухию - ошибка
- Приказ Минфина 147Н от12.12.05 как реализовать в 1С и надо-ли это.
- Экспорт из 1С в Word
- Можно как-то отключить партионный учет в Бухгалтерии?
- Как проще всего синхронизировать инфу на работе и дома?