|   |   | 
| 
 | 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) Ну да увидел, есть ошибка. Но чтобы её получить, надо постараться, ты прав.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |