Имя: Пароль:
1C
1С v8
обработка перенос документов
0 prog-Igor
 
01.12.14
19:10
Подскажите как на форме сделать отметку что если есть ставить отметку переносился именно этот документ?

Есть запрос который заполняет таблицу
Запрос=Новый Запрос;
     Запрос.Текст="ВЫБРАТЬ
                  |    РеализацияТоваровУслуг.Дата,
                  |    РеализацияТоваровУслуг.Номер,
                  |    РеализацияТоваровУслуг.Контрагент,
                  |    РеализацияТоваровУслуг.СуммаДокумента,
                  |    РеализацияТоваровУслуг.Ссылка
                  |ИЗ
                  |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
                  |ГДЕ
                  |    РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания";
     Запрос.УстановитьПараметр("ДатаНачала",Объект.Период.ДатаНачала);
     Запрос.УстановитьПараметр("ДатаОкончания",Объект.Период.ДатаОкончания);
     Результат=Запрос.Выполнить();
     ВыборкаРезультата=Результат.Выбрать();
    Объект.ТЗ.Очистить();
     Пока ВыборкаРезультата.Следующий() Цикл
         ТЗ=Объект.ТЗ.Добавить();
         ТЗ.Дата=ВыборкаРезультата.Дата;
         ТЗ.Номер=ВыборкаРезультата.Номер;
         ТЗ.Контрагент=ВыборкаРезультата.Контрагент;
         ТЗ.Сумма=ВыборкаРезультата.СуммаДокумента;
        
     КонецЦикла;
1 prog-Igor
 
01.12.14
19:14
как выбрать именно тот документ по которому стоит отметка?
2 lEvGl
 
гуру
01.12.14
20:15
страсти какие то... какая цель действа (общая, не по галке)?
3 prog-Igor
 
01.12.14
20:27
цель: пользователь в таблице выбирает документы которые хочет перенести на определенную дату
4 lEvGl
 
гуру
01.12.14
20:30
с тем чтобы в следующий раз он видел, какие документы уже переносились ?
5 prog-Igor
 
01.12.14
20:35
пользователь выбирает документы в определенном периоде,отмечает галочкой какие перенести и нажимает перенос!
6 prog-Igor
 
01.12.14
20:36
к примеру
Процедура ПереносДокТЗ(НаДату)  
        Док=Документы.РеализацияТоваровУслуг.Выбрать(ДатаНачала,ДатаОкончания);
    
    
     Пока Док.Следующий() Цикл
    
         ДокНов= Док.Ссылка.ПолучитьОбъект();
         ДокНов.Дата=НаДату;
         ДокНов.Записать();
    
     КонецЦикла;
КонецПроцедуры // ПереносДокТЗ
7 prog-Igor
 
01.12.14
20:37
Но тут ведь за период, а нужно по конкретному документу который он выберет!
8 Мимохожий Однако
 
01.12.14
20:44
Добавь к документу реквизит, если это важно, и заполняй по выбранным галочкам. А вообще для этих целей придумали План обмена.
9 prog-Igor
 
01.12.14
20:48
(8) Таблица правильно заполняется, я не знаю как написать чтобы пользователь мог выбирать галгой документы в этой таблице!
в которой есть колонка Отметка тип Булево!
10 lEvGl
 
гуру
01.12.14
20:55
в свойствах колонки ставишь данные флажка, при этом данные должны быть пустыми
11 prog-Igor
 
01.12.14
21:12
та я и сделал, но в процедуре переноса как правильно именно тот который отмечен перенести?
12 Chameleon1980
 
01.12.14
21:15
в запрос добавить поле (это флаг в тз будет)
результат запроса сразу выгрузить в тз
13 Chameleon1980
 
01.12.14
21:16
ну или поле не добавлять, а после выгрузки рез. запроса в тз в эту тз вставить колонку. не?
14 prog-Igor
 
01.12.14
21:22
может вы и правы, но я не совсем понял что нужно делать, мне нужно сделать перенос по конкретному документу который будет выбран-тот что я написал "Док=Документы.РеализацияТоваровУслуг.Выбрать(ДатаНачала,ДатаОкончания);"-это за период, а как именно выбрать Документ.Ссылку?
15 prog-Igor
 
01.12.14
21:24
весь код

&НаКлиенте
Процедура ЗаполнитьТЗ(Команда)
    ЗаполнитьДокументыТЗ();
    
КонецПроцедуры

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

КонецПроцедуры // ЗаполнитьДокументыТЗ()

&НаКлиенте
Процедура ПриОткрытии(Отказ)
     Период.ДатаНачала=НачалоМесяца(ТекущаяДата());
     Период.ДатаОкончания=ТекущаяДата();
     Объект.НаДату=ТекущаяДата();
КонецПроцедуры

&НаКлиенте
Процедура ПереносТЗ(Команда)
       ТекСтрока=Элементы.ТЗ.ТекущиеДанные;
      Если ТекСтрока.ОТметка=Истина Тогда
        ПереносДокТЗ(Объект.НаДату);
        ТекСтрока.ОТметка=Ложь;
    КонецЕсли;
    
     КонецПроцедуры

  &НаСервере
  Процедура ПереносДокТЗ(НаДату)  
    
    Док=Документы.РеализацияТоваровУслуг.Выбрать(ДатаНачала,ДатаОкончания);
    
     Пока Док.Следующий() Цикл
    
         ДокНов= Док.Ссылка.ПолучитьОбъект();
         ДокНов.Дата=НаДату;
         ДокНов.Записать();
    
     КонецЦикла;
КонецПроцедуры // ПереносДокТЗ
16 prog-Igor
 
01.12.14
21:59
меня интересует после того как отметка установлена тот документ должен переносится, как именно его выбрать?
Думал так:
ТекСтрока=Элементы.ТЗ.ТекущиеДанные;
      Если ТекСтрока.ОТметка=Истина Тогда
        ПереносДокТЗ(Объект.НаДату);
        ТекСтрока.ОТметка=Ложь;
    КонецЕсли;
    но это тоже не правильно
17 prog-Igor
 
03.12.14
13:56
у кого то есть какие то предложения?????
18 Лефмихалыч
 
03.12.14
14:01

(17) у меня есть предложение написать по-русски, чего ты хочешь и что именно не получается

19 Godofsin
 
03.12.14
14:03
(17) Отбор = новый Структура("ТвояОтметка", Истина);
ТЗОтмеченных = ТЗ.Скопировать(ТЗ.НайтиСТроки(Отбор));
20 prog-Igor
 
03.12.14
15:06
(18) нужно написать обработку перенос документов на другую дату
21 prog-Igor
 
03.12.14
15:08
(0)таблица по которой пользователь будет выбирать документ, дальше не знаю как правильно написать процедуру которая будет получать объект и переносить его....