Вход | Регистрация


Форумы на Кубань.Ру


1С:Предприятие ::

Метки:

Как в запросе указать все документы ?

Ø
Я
   Egnat
25.11.04 - 10:46
Как в запросе указать все документы не перечисляя их , те что-то типа
Док=Документ.ТекущийДокумент ?
Спасибо .
 
 
   Mihasya
1 - 25.11.04 - 10:49
А для чего?
   Джинн
2 - 25.11.04 - 10:49
В запросе никак. Перечислять все нужно.
Делай выборку документов.
   Меланхоличный ворон
3 - 25.11.04 - 10:51
А если так:
Док=Документ.*.ТекущийДокумент
   mai13
4 - 25.11.04 - 10:51
что должен делать запрос, если только выбрать все документы, то сделый через:
Док=СоздатьОбъект("Документ");
Док.ВыбратьДокументы(ДатаНач,ДатаКон);
Пока ПолучитьДокумент()=1 цикл
а в цикле проверки если нужно
   mai13
5 - 25.11.04 - 10:53
что должен делать запрос, если только выбрать все документы, то сделый через:
Док=СоздатьОбъект("Документ");
Док.ВыбратьДокументы(ДатаНач,ДатаКон);
Пока Док.ПолучитьДокумент()=1 цикл
КонецЦикла;
а в цикле проверки если нужно
   Меланхоличный ворон
6 - 25.11.04 - 10:54
+3 Это я к первому апреля готовлюсь.
Но неплохо было бы, если такое было можно :-)
   NS
7 - 25.11.04 - 10:55
(6) У меня работает...
   Mihasya
8 - 25.11.04 - 10:56
СписокДоков = "";
Для а = 1 по Метаданные.Документ() Цикл
СписокДоков = СписокДоков + ",Документ."+Метаданные.Документ(а).Идентификатор+".ТекущийДокумент";
КонецЦикла;
СписокДоков = "Док = " + Сред(СписокДоков, 2);
   mai13
9 - 25.11.04 - 10:56
Egnat уже потерял интерес к своему вопросу?
   NS
11 - 25.11.04 - 10:58
(10) Запрос на удаление?!?
Перебором (выбратьДокументы) - быстрее, чем запросом, тем более, что в запросе придется делать Док.НайтиДокумент();
....
Чтоб быстро удалить - нужно делать УстановитьТАНА(ПервыйДокумент);
   Bot
12 - 25.11.04 - 10:58
(0) Если тебе прям уперлось сделать это запросом, заполняй текст запроса в цикле по метаданным....
   mai13
13 - 25.11.04 - 10:59
Тем более берешь цикл (5), а перед ним НачатьТранзакцию();
а в конце ЗафиксироватьТранзакцию();
И дело идет быстро!!! :)))
   Mihasya
14 - 25.11.04 - 10:59
(10) А не проще DBF-ы грохнуть? Если тебе надо все доки убить?
   NS
16 - 25.11.04 - 11:01
И удалять в транзакции по N Документов.
   Джинн
17 - 25.11.04 - 11:01
То 8. Ага. И в ответ получашь "Строка запроса превысила допустимую длину..." :))
   Egnat
19 - 25.11.04 - 11:09
to 14 : забавный подход , а как движения ? сами удалятся после того ка база напишет невосстановимая ошибка БД ? :-)
   Egnat
20 - 25.11.04 - 11:13
Пришлось в цикле обычном , обрабатывается 2001 год и я курю солому до обеда точно :-)
   NS
21 - 25.11.04 - 11:17
(20) Текст обработки в форум выложи.
   Egnat
22 - 25.11.04 - 11:53
Да всё просто
Процедура УдалитьКЕдреням()
Док=СоздатьОбъект("Документ");
Док.ВыбратьДокументы(ДатаНач,ДатаКон);
Пока Док.ПолучитьДокумент()<>0 Цикл;
     Док.Удалить(1);
     Сообщить("Удалён документ "+Док+"...");
КонецЦикла;
КонецПроцедуры
   NS
23 - 25.11.04 - 12:18
угу, а руководству сказал - что 1С тормозит...
Док=СоздатьОбъект("Документ");
УстановитьТАНА('01.01.1980');
начатьтранзакцию();
а=0;
Док.ВыбратьДокументы(ДатаНач,ДатаКон);
Пока Док.ПолучитьДокумент()<>0 Цикл;
 а=а+1;
 Док.Удалить(1);
  Если а=20 тогда
     а=0;
     Сообщить("Удалён документ "+Док+"...");
     Зафиксироватьтранзакцию();
     начатьтранзакцию();
  Конецесли;
КонецЦикла;
Зафиксироватьтранзакцию();
   Mihasya
24 - 25.11.04 - 13:53
(14) Ну так ты и движения грохни... это во-первых,
во-вторых: база ничего не напишет и в-третьих, если не удалять движения можно сделать тестирование ИБ и программа сама их удалит.
   Mihasya
25 - 25.11.04 - 13:56
24 было для 19




Список тем форума

Форум Территория 1С

Рекламное место пустует   Рекламное место пустует
AdBlock убивает бесплатный контент. 1Сергей
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует