Переключение на Главную Страницу Страницы: [1] 2 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) Не отрабатываются инструкции в прямом запросе (число прочтений - 15825 )
ПодОпытный
Junior Member
**
Отсутствует


От чего и почему ничего
я не пойму?!

Сообщений: 32
Местоположение: Республика Коми Сыктывкар
Зарегистрирован: 16. Сентября 2007
Пол: Мужской
Не отрабатываются инструкции в прямом запросе
16. Сентября 2007 :: 12:31
Печать  
Учусь работать с 1С++
Нужно пометить на удаление все документы до определенной даты
Нашел пример на 1csql.ru для rainbow.dll
Решил переделать для 1с++, но команды выполняются, а результата нет
Вот, что получилось:
Код
Выбрать все
База = СоздатьОбъект("OLEDBData");
Соединение = "Provider=VFPOLEDB.1;Deleted=Yes;Data Source=" + ПутьКБазе+ ";Mode=ReadWrite;Extended Properties="";User ID="";Password="";Mask Password=False;Collating Sequence=RUSSIAN;DSN=""";
Рез = База.Соединение(Соединение);
Запрос = База.СоздатьКоманду();
Мета=СоздатьОбъект("MetaDataWork");
//Удаляем движения документов
Для ном = 1 по Метаданные.Регистр() Цикл
  Вид = Метаданные.Регистр(ном).Идентификатор;
  ФайлДвижений = Строка(Мета.ИмяТаблицыДвижений(Вид));
  стр = "DELETE FROM "+ФайлДвижений+" where "+ФайлДвижений+".iddoc in (SELECT Iddoc FROM 1sjourn WHERE date < CTOD("+парКонечнаяДата+"))";
  Если Запрос.ВыполнитьИнструкцию(стр) = 0 Тогда
  Возврат;
  КонецЕсли;
КонецЦикла;
//Устанавливаем пометку на удаление документов.
стр="UPDATE 1sjourn SET ismark='*', closed=0 WHERE date < CTOD("+парКонечнаяДата+") and closed <> 3";
Если Запрос.ВыполнитьИнструкцию(стр) = 0 Тогда
 Возврат;
КонецЕсли
 


Может я где-то что-то неучел?
  
Наверх
 
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Не отрабатываются инструкции в прямом запросе
Ответ #1 - 16. Сентября 2007 :: 18:01
Печать  
Не совсем понятно что значит "результата нет"

Но могу сразу направить к http://www.1cpp.ru/forum/YaBB.pl?num=1178875637/0
UPDATE почему то не перестраивает индекс пока его явно не укажешь
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Не отрабатываются инструкции в прямом запросе
Ответ #2 - 16. Сентября 2007 :: 22:17
Печать  
А что нельзя сразу удалить из журнала документы?
Я бы плясал от журнала...
А потом типа так для каждого регистра:
DELETE FROM RA18764
WHERE IDDOC NOT IN (SELECT IDDOC FROM 1sjourn)
Потом ТиИ (с переиндексацией и удалением фиговых ссылок)
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
ПодОпытный
Junior Member
**
Отсутствует


От чего и почему ничего
я не пойму?!

Сообщений: 32
Местоположение: Республика Коми Сыктывкар
Зарегистрирован: 16. Сентября 2007
Пол: Мужской
Re: Не отрабатываются инструкции в прямом запросе
Ответ #3 - 17. Сентября 2007 :: 05:17
Печать  
(2) Результата нет. Это значит в отладчике все проходит ошибок нет. Смотрю таблицы, а записи в них не пометились на удаление.
Дело не в индексах, их я вообще удалил. Возможно причина в этом ...
Попробую с индексами ...
(3) А разве так не будет медленнее? Я думал что тупая пометка по условию работает быстрее. Кстати делаю свертку по твоей обработке. Там как раз не хватает умной пометки на удаление )

Хочу спросить еще: Строку подключение взял из справки, может что не так? Подключаюсь к другой базе правильно? Так все же почему таблицы базы не обрабатываются ... Как узнать отработались ли инструкции?
Так же в документации есть:
После выполнения запроса, необходимо пересчитать регистр. Это можно сделать с помощью ТиИ, но лучше воспользоваться обработкой: УстановкаТА, автор DmitrO.
Брать здесь http://metaprog.km.ru/secrprog1c/sql/apsetup_2_2.zip
Где теперь можно взять сию обработку?
  
Наверх
 
IP записан
 
ПодОпытный
Junior Member
**
Отсутствует


От чего и почему ничего
я не пойму?!

Сообщений: 32
Местоположение: Республика Коми Сыктывкар
Зарегистрирован: 16. Сентября 2007
Пол: Мужской
Re: Не отрабатываются инструкции в прямом запросе
Ответ #4 - 17. Сентября 2007 :: 06:06
Печать  
Обработку нашел сам )
Так что в документации просьба изменить путь!
http://metaprog.co.ua/secrprog/files/setTA.zip
Но она только для SQL, возможно ли ее переписать для DBF?
  
Наверх
 
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Не отрабатываются инструкции в прямом запросе
Ответ #5 - 17. Сентября 2007 :: 06:10
Печать  
Обработка УстановкаТА только для SQL формата ИБ, дбф не считает. www.dev.citykirov.ru
  
Наверх
ICQ  
IP записан
 
ПодОпытный
Junior Member
**
Отсутствует


От чего и почему ничего
я не пойму?!

Сообщений: 32
Местоположение: Республика Коми Сыктывкар
Зарегистрирован: 16. Сентября 2007
Пол: Мужской
Re: Не отрабатываются инструкции в прямом запросе
Ответ #6 - 17. Сентября 2007 :: 06:51
Печать  
Все заработало ...
Пришлось работать в выходные ... к вечеру воскресенья голова не работала уже ...
Дату ставил на год раньше ))) где доков нет
  
Наверх
 
IP записан
 
ПодОпытный
Junior Member
**
Отсутствует


От чего и почему ничего
я не пойму?!

Сообщений: 32
Местоположение: Республика Коми Сыктывкар
Зарегистрирован: 16. Сентября 2007
Пол: Мужской
Re: Не отрабатываются инструкции в прямом запросе
Ответ #7 - 17. Сентября 2007 :: 07:34
Печать  
Теперь хочу усложнить задачу ...
Пометить только нужные виды документов ... пока только разбираюсь )
Если кинете ссылкой с примером буду очень рад )
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Не отрабатываются инструкции в прямом запросе
Ответ #8 - 17. Сентября 2007 :: 07:41
Печать  
Цитата:
Теперь хочу усложнить задачу ...
Пометить только нужные виды документов ... пока только разбираюсь )
Если кинете ссылкой с примером буду очень рад )

Статья о использовании прямых запросов
  
Наверх
 
IP записан
 
ПодОпытный
Junior Member
**
Отсутствует


От чего и почему ничего
я не пойму?!

Сообщений: 32
Местоположение: Республика Коми Сыктывкар
Зарегистрирован: 16. Сентября 2007
Пол: Мужской
Re: Не отрабатываются инструкции в прямом запросе
Ответ #9 - 17. Сентября 2007 :: 07:57
Печать  
Я всю тему прочитал уже не раз
Разбираюсь ... О результате доложу )
Пока для других нубов как я выложил что получилось
http://infostart.ru/projects/1262/
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Не отрабатываются инструкции в прямом запросе
Ответ #10 - 17. Сентября 2007 :: 08:06
Печать  
Ну и неужели не видел:
Цитата:
Поля таблицы 1SJourn (журнал док-ов):
...
IDDocDef – вид
...
Жур.IDDocDef = $ВидДокумента.Реализация
  
Наверх
 
IP записан
 
ПодОпытный
Junior Member
**
Отсутствует


От чего и почему ничего
я не пойму?!

Сообщений: 32
Местоположение: Республика Коми Сыктывкар
Зарегистрирован: 16. Сентября 2007
Пол: Мужской
Re: Не отрабатываются инструкции в прямом запросе
Ответ #11 - 17. Сентября 2007 :: 08:32
Печать  
Да уже нашел, читаю
Спасибо за "разжевывание"
  
Наверх
 
IP записан
 
ПодОпытный
Junior Member
**
Отсутствует


От чего и почему ничего
я не пойму?!

Сообщений: 32
Местоположение: Республика Коми Сыктывкар
Зарегистрирован: 16. Сентября 2007
Пол: Мужской
Re: Не отрабатываются инструкции в прямом запросе
Ответ #12 - 17. Сентября 2007 :: 10:36
Печать  
Для Платежного поручения в ТиС-е сделал так
Код
Выбрать все
стр="UPDATE 1sjourn SET ismark='*', closed=0 WHERE date < CTOD("+парКонечнаяДата+") and closed <> 3 and IDDocDef <> ' 1C3'";
 


$ВидДокумента.ПлатежноеПоручение не хочет работать ругается
Пришлось искать идентификатор в таблицах, Как его искать через MetaDataWork?
Как правильно сделать последнее условие?
С $ВидДокумента нужно еще подготовить текст запроса?
  
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Не отрабатываются инструкции в прямом запросе
Ответ #13 - 17. Сентября 2007 :: 14:23
Печать  
IDDocDef <> ' 1C3'
Это не то что надо
Тебе нужно передавать как текстовый параметр Мета.ИдДокумента("ПП") или писать в запросе $ВидДокумента.ПП
Там должно быть ДЕСЯТИЧНОЕ число а не 36-чное
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
ПодОпытный
Junior Member
**
Отсутствует


От чего и почему ничего
я не пойму?!

Сообщений: 32
Местоположение: Республика Коми Сыктывкар
Зарегистрирован: 16. Сентября 2007
Пол: Мужской
Re: Не отрабатываются инструкции в прямом запросе
Ответ #14 - 18. Сентября 2007 :: 05:48
Печать  
Главное Все работает, но не буду же я по каждому виду дока искать идентификатор
Так я пробовал ставить $ВидДокумента.ПлатежноеПоручение
ругается ...
FAILED! ICommandText::Execute(): SQL: Column '     ' is not found.
Еще пробовал
ИдПлат=Строка(Мета.ИДОбъекта(Метаданные.Документ("ПлатежноеПоручение")));
Но он возвращает 1731
и соответственно не отрабатывается
А ИдДокумента разве не возвращает ИД конкретного документа? а мне то нужно ИД ВИДА документа
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 
ОтправитьПечать