Имя: Пароль:
1C
1С v8
Инвентаризация товаров. Отбор по счету учета
0 Софико
 
05.11.14
11:21
Добрый день, мне нужно сделать в документе "Инвентаризация товаров" возможность заполнения остаток, в зависимости от выбора счета.
Сделано внешней обработкой
Процедура Инициализировать(Объект, ИмяТабличнойЧасти, ТабличноеПоле) Экспорт;
    
    тПроводки = Объект[ИмяТабличнойЧасти];
    
    Если тПроводки.Количество() > 0 Тогда
        
        ТекстВопроса = "Перед заполнением табличная часть будет очищена. Заполнить?";
        Ответ = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Да, Метаданные().Синоним);
        Если Ответ <> КодВозвратаДиалога.Да Тогда
            Возврат;
        КонецЕсли;
        
        тПроводки.Очистить();
        
    КонецЕсли;

    ФормаСклады = Справочники.Склады.ПолучитьФормуВыбора();
    Склад = ФормаСклады.ОткрытьМодально();
    
    Счет9021 = ПланыСчетов.Типовой.МатериалыПринятыеВПереработку;
    
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ТиповойОстатки.Субконто2 КАК Номенклатура,
                   |    СУММА(ТиповойОстатки.КоличествоОстатокДт) КАК Количество,
                   |    ТиповойОстатки.Счет КАК СчетУчета,
                   |    СУММА(ТиповойОстатки.СуммаОстатокДт) КАК Сумма,
                   |    СРЕДНЕЕ(ВЫБОР
                   |            КОГДА ТиповойОстатки.КоличествоОстатокДт > 0
                   |                ТОГДА ТиповойОстатки.СуммаОстатокДт / ТиповойОстатки.КоличествоОстатокДт
                   |            ИНАЧЕ 0
                   |        КОНЕЦ) КАК Цена,
                   |    СУММА(ТиповойОстатки.СуммаОстатокДт) КАК СуммаУчет,
                   |    СУММА(ТиповойОстатки.КоличествоОстатокДт) КАК КоличествоУчет
                   |ИЗ
                   |    РегистрБухгалтерии.Типовой.Остатки(&ДатаДок, Счет = &Счет, , Субконто1 = &Склад) КАК ТиповойОстатки
                   |
                   |СГРУППИРОВАТЬ ПО
                   |    ТиповойОстатки.Субконто2,
                   |    ТиповойОстатки.Счет
                   |
                   |УПОРЯДОЧИТЬ ПО
                   |    СчетУчета,
                   |    Номенклатура";
    
    Запрос.УстановитьПараметр("Склад", Склад);
    Запрос.УстановитьПараметр("Счет", Счет9021);
    Запрос.УстановитьПараметр("ДатаДок", Объект.Дата);
    
    Результат = Запрос.Выполнить().Выгрузить();
    
    тПроводки.Загрузить(Результат);
    
КонецПроцедуры

Функция мУстановитьЗначение(Получатель,Значение)
    
    Если ТипЗнч(Получатель)=ТипЗнч(Значение) Тогда
        Получатель = Значение;
    Иначе
        Сообщить("Типы значений для замены различные!");
    КонецЕсли;
    
КонецФункции

окно выбора склада появляется и все, заполнение остатков не происходит
Или может другой простой вариант кто предложит
Если в документе на вкладке "Счета учета расчетов" выбираю нужный склад, заполняется все равно по всем
1 vicof
 
05.11.14
11:25
(0) Отладчик протоукры забрали?
2 13_Mult
 
05.11.14
11:27
Склад = ФормаСклады.ОткрытьМодально(); в параметры запроса передаёшь?
3 Софико
 
05.11.14
11:31
(2) Запрос.УстановитьПараметр("Склад", Склад);
это?
4 13_Mult
 
05.11.14
11:33
(3) оно самое )
5 Софико
 
05.11.14
11:41
не поняла, что не так(
поясните для особо одаренных еще раз, что не так в запросе?
6 13_Mult
 
05.11.14
11:54
(5) В отладчике точку останова на получении склада поставьте и посмотрите что там возващается
7 Krendel
 
05.11.14
11:57
(0) Бесполезный механизм, что делать если кирпич  у нас лежит на разных счетах учета?
Ошибка? Это не ошибка, это системная функция.