|
v7: 7.7 еще сырая, ошибка в Документ.ИнвентаризацияТМЦ.Форма, ТиС | ☑ | ||
---|---|---|---|---|
0
Злопчинский
03.12.21
✎
01:10
|
стукнулся тут клиент, трабл нарисовался, стал смотреть... блин, хня какая...
итого, начиная с какого то релиза (наиболее ранний который мне доступен где ошибка уже есть - 973, наиболее ранний где ошибки еще нет который мне доступен - 935). кто-то из умников (разрабов 1С!) заремил строку установки фактического количества в значение равное учетному количеству(см. код ниже) при выборе/перевыборе номенклатуры в строке, (и я даже вангую зачем), но при этом не пересчитал фактическую сумму, а приравнял ее к сумме учетного количества. Итого получилось что возможна ситуация что есть отклонение по количеству, но нет отклонения по сумме. О чем клиент и заявился. При штатной работе такая ситуация возникает редко, только при определенных действиях (причем нелогичных) пользователя (воспроизвести удалось, хотя чуток пришлось мозги напрячь ;-). Может я нихрена не понял, и несу пургу, но что есть, то есть... . Поправить код типа как приведено ниже . Процедура ЗаполнитьРеквСтрокиПоСкладу() Перем ТаблСуммы, ТаблОстатков; Перем СписТоваров; СписТоваров = СоздатьОбъект("СписокЗначений"); СписТоваров.ДобавитьЗначение(Номенклатура); ПолучитьОстатки(СписТоваров, 0, ТаблОстатков, ТаблСуммы); ТаблОстатков.Свернуть("Номенклатура", "Количество"); ТаблСуммы.Свернуть("Номенклатура","Количество,СуммаБезНДС"); Если ТаблОстатков.КоличествоСтрок() > 0 Тогда ТаблОстатков.ПолучитьСтрокуПоНомеру(1); Единица = Номенклатура.БазоваяЕдиница; Коэффициент = Единица.Коэффициент; КоличествоУчет = ТаблОстатков.Количество; //Количество = ТаблОстатков.Количество; // ЗЛОП тут собака порылась какая-то сука НомСтр = 0; Если ТаблСуммы.НайтиЗначение(Номенклатура,НомСтр,"Номенклатура") = 1 Тогда ТаблСуммы.ПолучитьСтрокуПоНомеру(НомСтр); Если ТаблСуммы.Количество <> 0 Тогда ВремСумма = ТаблСуммы.СуммаБезНДС * КоличествоУчет / ТаблСуммы.Количество; СуммаУчет = глПересчет(ВремСумма, глРубли, ДатаДок, Валюта, Курс,, Кратность); Иначе СуммаУчет = 0; КонецЕсли; Иначе СуммаУчет = 0; КонецЕсли; // ЗЛОП было //Сумма = СуммаУчет; //Цена = ?(КоличествоУчет = 0,0, СуммаУчет / КоличествоУчет); // ЗЛОП стало Цена = ?(КоличествоУчет = 0,0, СуммаУчет / КоличествоУчет); Сумма = ?(Количество = КоличествоУчет, СуммаУчет, Цена * Количество); КонецЕсли; КонецПроцедуры // ЗаполнитьРеквСтрокиПоСкладу() |
|||
1
kubik_live
03.12.21
✎
01:49
|
(0) Вроде там задумка такая:
1. Количество (факт) первоначально заполняется по Количество (учет). И суммы тоже. 2. А по факту инвентаризации Количество (факт) просто редактируется. И все норм. пересчитывается. |
|||
2
Ёпрст
03.12.21
✎
01:50
|
(0) Теперь просто ошибка, ибо переменная количество не определена в коде
|
|||
3
Злопчинский
03.12.21
✎
02:13
|
(1) все правильно, но это не всё...
|
|||
4
Злопчинский
03.12.21
✎
02:14
|
(2) Количество - Реквизит ТЧ документа
|
|||
5
Злопчинский
03.12.21
✎
02:18
|
(1) заполни документ.
в строке1: Товар1, КолвоУчет=10,КолвоФакт=12 в строке2: Товар2, КолвоУчет=5,КолвоФакт=5 . теперь удали строка2, а в строка1 вместо Товара1 выбери Товар2 - поучится в строке1: Товар2, КолвоУчет=5,КолвоФакт=12, СуммаУчет(от 5шт), СуммаФакт (та же самая от 5шт). и пока не передернешь в строке1 колвофакт или цену - там ошибка и повиснет. . если в строке1 перевыбрать Товар, который есть в других строках - система не пустит так сделать, все будет НОРМ. Трабл именно вот в таком сценарии как я описал. |
|||
6
Харлампий Дымба
03.12.21
✎
14:26
|
Релиз 7.70.938 от 15.04.2005 г.
================================================================= Список изменений релиза 7.70.938 по сравнению с релизом 7.70.937 ================================================================= Документ ИнвентаризацияТМЦ ("Инвентаризация ТМЦ") ----------------------------------------------------------------- ... Исправлено: При выполнении действия по кнопке "Заполнить", теперь заполняется только колонка "Количество (учетное)". Добавлен вариант заполнения "Заполнить фактическое количество по учетному". Внесены изменения в диалог формы документа. Внесены изменения в модуль формы документа. ... А ты на текущей типовой проверял? А то вряд ли у клиента типовая - может при ручном обновлении забыли изменить в Кол(факт) - глПересчетТаблЧасти() на ПриИзмененииКоличества() или ещё что. |
|||
7
Злопчинский
03.12.21
✎
14:30
|
код приведен из типовой 1002
|
|||
8
Злопчинский
03.12.21
✎
14:31
|
проверял на 974 или 975, блок инвента - штатный
|
|||
9
Злопчинский
03.12.21
✎
14:32
|
в 973 и дальше код такой же как в 1002
|
|||
10
Харлампий Дымба
03.12.21
✎
15:20
|
5) Ну да увидел, есть ошибка. Но чтобы её получить, надо постараться, ты прав.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |