Имя: Пароль:
1C
1С v8
Обработка заполнения ТЧ
0 егаис
 
12.01.17
09:16
&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт
    
    ДокОбъект = ВладелецФормы.Объект;
    
    Если ДокОбъект.Склад.Пустая() Тогда
        Сообщить("Не выбран склад!");
    Иначе    
        ТаблицаОстатков = ПолучитьОстаткиИнвентаряНаСервере(ДокОбъект);
    КонецЕсли;

КонецПроцедуры    

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

не заполняется (
где проблема?
1 егаис
 
12.01.17
09:17
пардон, там будет серверная процедура, не функция. Проблема не решается
2 егаис
 
12.01.17
09:25
все, решено
3 1dvd
 
12.01.17
09:26
ну, ты заходи если чо
4 егаис
 
12.01.17
09:27
а пока не спросишь, фиг решение найдешь, проверено ;)
5 Mankubus
 
12.01.17
09:35
а оставить решение для потомков?
6 егаис
 
12.01.17
19:13
да без проблем
&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт
    
    ДокОбъект = ВладелецФормы.Объект;
    
    Если ДокОбъект.Склад.Пустая() Тогда
        Сообщить("Не выбран склад!");
    Иначе    
        ПолучитьОстаткиИнвентаряНаСервере(ДокОбъект);
        КопироватьДанныеФормы(ДокОбъект, ВладелецФормы.Объект);    
        ВладелецФормы.Модифицированность = Истина;
    КонецЕсли;

КонецПроцедуры    

&НаСервере
Процедура ПолучитьОстаткиИнвентаряНаСервере(ДокОбъект)
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ХозрасчетныйОстатки.Счет Как СчетУчета,
        |    ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,
        |    СУММА(ХозрасчетныйОстатки.КоличествоОстаток) КАК Количество
        |ИЗ
        |    РегистрБухгалтерии.Хозрасчетный.Остатки(
        |            &Период,
        |            Счет = &Счет1009,
        |            ,
        |            Субконто2 = &Склад
        |                И Организация = &Организация) КАК ХозрасчетныйОстатки
        |
        |СГРУППИРОВАТЬ ПО
        |    ХозрасчетныйОстатки.Счет,
        |    ХозрасчетныйОстатки.Субконто1";
    
    Запрос.УстановитьПараметр("Организация", ДокОбъект.Организация);
    Запрос.УстановитьПараметр("Период", ДокОбъект.Дата);
    Запрос.УстановитьПараметр("Склад", ДокОбъект.Склад);
    Запрос.УстановитьПараметр("Счет1009", ПланыСчетов.Хозрасчетный.ИнвентарьИХозяйственныеПринадлежности);
    ТаблицаОстатков = Запрос.Выполнить().Выгрузить();
    ТаблицаОстатков.Колонки.Добавить("ФизЛицо");
    Для Каждого Строка Из ТаблицаОстатков Цикл
        Строка.ФизЛицо = ОтветственныеЛицаБП.ОтветственноеЛицоНаСкладе(ДокОбъект.Склад, ДокОбъект.Дата);
    Конеццикла;    
    
    ДокОбъект.ИнвентарьИХозяйственныеПринадлежности.Загрузить(ТаблицаОстатков);
    
КонецПроцедуры
7 Лефмихалыч
 
12.01.17
19:25
ДО = РеквизитФормыВЗначение("Объект");
ДО.ТЧ.Загрузить(Выполнить().Выгрузить());
ЗначениеВреквизитФормы(ДО, "Объект");
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой