Имя: Пароль:
1C
1С v8
Помогите переписать функцию под Управляемеое приложение
0 НикДляЗапросов
 
21.11.13
11:22
&НаКлиенте
Процедура Команда1(Команда)
    Объект.Заказ.Очистить();
    ТЗ = Новый ТаблицаЗначений;
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("Организация", Объект.Организация);
    Запрос.УстановитьПараметр("Контрагент", Объект.Контрагент);
    Если Объект.Рабочая=1 Тогда
        Запрос.УстановитьПараметр("Дата", РабочаяДата);
    Иначе
        Запрос.УстановитьПараметр("Дата",Объект.Заказ);
    КонецЕсли;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ЧасОстатки.КоличествоОстаток КАК Количество,
    |    ЧасОстатки.СуммаОстаток КАК Сумма,
    |    ЧасОстатки.Контрагент,
    |    ЧасОстатки.ТипЧаса КАК ТипЧаса,
    |    ЧасОстатки.Номенклатура КАК Наряд
    |ИЗ
    |    РегистрНакопления.Час.Остатки(
    |            &Дата,
    |            Контрагент = &Контрагент
    |                И Организация = &Организация) КАК ЧасОстатки";
    ТЗ=Запрос.Выполнить().Выгрузить();
    
    Для Каждого ТекСтрока Из ТЗ Цикл
        Строка=Объект.Заказ.Добавить();
        Строка.ТипЧаса=ТекСтрока.ТипЧаса;
        Строка.Наряд=ТекСтрока.Наряд;
        Строка.Количество=ТекСтрока.Количество;
        Строка.Сумма=ТекСтрока.Сумма;
    КонецЦикла;
КонецПроцедуры

{Документ.НарядЗаказ.Форма.ФормаДокумента1.Форма(390,13)}: Тип не определен (ТаблицаЗначений)
    ТЗ = Новый <<?>>ТаблицаЗначений;
{Документ.НарядЗаказ.Форма.ФормаДокумента1.Форма(391,17)}: Тип не определен (Запрос)
    Запрос = Новый <<?>>Запрос;
1 Лодырь
 
21.11.13
11:25
&НаСервере
Процедура ПроцедураНаСервере()
//    Тут твой код
КонецПРоцедуры

&НаКлиенте
Процедура Команда1(Команда)
   ПроцедураНаСервере();
КонецПроцедуры
2 hhhh
 
21.11.13
11:27
(0) ну, вместо &Наклиенте пишете &НаСервере

в начале процедуре вставляете

ДокументОбъект = РеквизитФормыВЗначение("Объект");

и потом везде вместо Объект пишете ДокументОбъект.

Хотя к реквизитам примитивного типа (строка, число, дата, булево, СправочникСсылка) можете обращаться как и раньше, через Объект.
3 WildSery
 
21.11.13
11:38
(0) Всегда раздражает
ТЗ = Новый ТаблицаЗначений;
ТЗ = Запрос.Выполнить().Выгрузить();

зачем тут новый, если он новый и так создаётся методом выгрузить()

А недавно в ступор вогнала конструкция
ТЗ = Запрос.Выполнить().Выгрузить().Скопировать();
4 НикДляЗапросов
 
21.11.13
11:40
(3) Код не мой, но ТЗ = Новый ТаблицаЗначений; это нормально, сразу ясно новая переменая
5 WildSery
 
21.11.13
11:44
(4) А по мне так ненормально создавать в памяти объекты, на которые нет ссылок.
Хоть оно автоматически и удалится при выходе из процедуры, но меня как программиста и перфекциониста это выводит из гармонии.
6 Asmody
 
21.11.13
11:49
(5) зато 1Совский "телепат" понимает тип переменной и подсказывает нужные методы
7 RomaH
 
naïve
21.11.13
11:50
(5) зато контекстная подсказка работает
8 Infsams654
 
21.11.13
12:17
(4) если в тонком, то там ТЗ нет.
9 Infsams654
 
21.11.13
12:17
(8) + на клиенте