Имя: Пароль:
1C
1C 7.7
v7: Выборка документов
0 kouki
 
26.07.11
13:45
Здравствуйте , Гуру. Возник вопрос по выборке. Конфигурация - стремный самопал(((( с кучей минусов.
В журнале есть документы за 1.06.11 И нужно перезаписать информацию в этих документах. пишу обработку.
Процедура Выполнить()
   Док  = СоздатьОбъект("Документ.Ведомость");
   Док.ВыбратьДокументы(ДатаНач, ДатаКон);
   Пока Док.ПолучитьДокумент() = 1 Цикл
       Если Док.Проведен() = 1 Тогда    
           Док.СделатьНеПроведенным();
           Продолжить;
       Иначе
           //---------пересчет документа
           ВремРасценка = 0;
           флаг = 1;
           Док.ВыбратьСтроки();
           Пока Док.ПолучитьСтроку() = 1 Цикл
               Док.Тариф = Док.Ставка.Тариф;
               Док.Расценка = Док.Тариф*1*Док.НормаВр;
               Док.НормаВыр = 1000/Док.НормаВр*8;
               Сумма= (Док.Литьё+ Док.Расценка)*Док.Коэфф;
               Если флаг = 1 Тогда
                   ВремРасценка = Док.СуммаМех;
                   Док.Брак = ВремРасценка;
                   флаг = 0;
               Иначе
                   Док.Брак  = ВремРасценка + Док.Расценка;
                   ВремРасценка = док.Брак;
               КонецЕсли;
               
           КонецЦикла;
       КонецЕсли;
       //---------------------------------
       док.ДатаДок = УстДата;
       док.Записать();
       //док.Провести(2);
       Сообщить("Изделие"+ Док.Изделие + "Перезаписано!!!!");
   КонецЦикла;
КонецПроцедуры
И выбирается только 1-й документ и проводка звкрывается.. Что не так????
1 catena
 
26.07.11
13:47
док.ДатаДок = УстДата;
Выходишь за пределы выборки.
2 Рэйв
 
26.07.11
13:47
(0)Так может он там один  и есть?
3 smaharbA
 
26.07.11
13:47
проводок у не проведенных обычно нет
4 Жан Пердежон
 
26.07.11
13:47
ты выборку сбиваешь сбиваешь в цикле
5 kouki
 
26.07.11
14:01
(4) чем сбиваю???О_о
6 Ёпрст
 
26.07.11
14:02
(5) см. (1) - установкой новой даты.
7 kouki
 
26.07.11
14:05
Но мне надо чтобы в доке была новая дата...
8 kouki
 
26.07.11
14:06
(6) А установкой всмысле что он вроде был в выборке а после установки даты выходит за пределы ее???
9 VladZ
 
26.07.11
14:06
(0) Ну что за люди! Обязательно весь функционал нужно запихать в одну процедуру???
Держи алгоритм:
1. получить нужные документы.
2. исправить документы из п. 1.
3. Сообщить пользователю о проделанной работе.
10 Попытка1С
 
26.07.11
14:06
(8) Накидать в ТЗ потом провести.
11 kouki
 
26.07.11
14:08
(9) Счас сделаем))) спасибо!!))
12 kouki
 
26.07.11
14:41
(9) А документы лучше в ТЗ выбирать??
13 Cthulhu
 
26.07.11
14:47
(12): не "выбирать" а "собирать".
в куда сможешь - в туда и лучше.
14 kouki
 
26.07.11
15:07
(13) благодарю)
15 kouki
 
27.07.11
12:48
Кстати.. народ.. сегодня оказалось. Что в программе логика вообще загонная.. оказывается есть определенный список документов, в табличной части которых с течением времени нужно пересчита определенные показатели и изменить дату.
ТАк может проще вот по такому алгоритму:
1. Создать новый документ в который записать изм табличную часть и дату.
2. удалить старые
3.сообщить пользователю
16 1Сергей
 
27.07.11
12:50
(15) могут быть ссылки на этот документ
17 Мулька
 
27.07.11
12:54
(15) Оставить старые непременно
18 kouki
 
27.07.11
12:54
(16) В принцепе да.
Если честно Я не могу понять почему сбивается выборка при изменении даты.
Док.ВыбратьДокументы(,УстДата);
Пока Док.ПолучитьДокумент() = 1 Цикл
   Док.ДатаДок = УстДата;
   док.Провести();
КонецЦикла;
19 kouki
 
27.07.11
12:57
(17). Ну в принцепе я тож думаю что лучше оставить. Кто знает что им придет в голову через месяц. сделать отчет к примеру за предыдущий месяц. А виноватым сделают меня.
20 palpetrovich
 
27.07.11
13:01
(18) не можешь понять - просто поверь :)
про (15) лучше и не думай
делай как рассказали, единственное я-бы еще сохранил в комментариях измененных документов старую дату - так, для истории :)
21 kouki
 
27.07.11
13:07
(20) Поверил=)) Он берет только первый документ из выборки и ее закрывает. как исправить??
22 VladZ
 
27.07.11
13:09
(21) Выборка сбивается... Сначала получи документы, потом их правь.
23 vicof
 
27.07.11
13:10
(21) тебе же сказали, в таблицу значений документы скидывать
24 zak555
 
27.07.11
13:11
(22) +1
засунь куда-нибудь
25 kouki
 
27.07.11
13:31
Все .. теперь я 100% осознал свою ошибку.. спасибо