Переключение на Главную Страницу Страницы: 1 [2] 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) Как отредактировать движения документов по регистрам остатков? (число прочтений - 11592 )
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Как отредактировать движения документов по регистрам остатков?
Ответ #15 - 14. Октября 2011 :: 08:05
Печать  
http://www.1cpp.ru/forum/YaBB.pl?num=1148038411/24#24

прочитай хоть, сперва.
  
Наверх
 
IP записан
 
nop
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 17
Местоположение: Украина, Харьков
Зарегистрирован: 14. Сентября 2011
Re: Как отредактировать движения документов по регистрам остатков?
Ответ #16 - 14. Октября 2011 :: 08:22
Печать  
Eprst писал(а) 14. Октября 2011 :: 08:05:
http://www.1cpp.ru/forum/YaBB.pl?num=1148038411/24#24

прочитай хоть, сперва.


читал много раз, что делать? Драйвер не тот что ли?
  
Наверх
ICQ  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Как отредактировать движения документов по регистрам остатков?
Ответ #17 - 14. Октября 2011 :: 08:33
Печать  
какой догадливый.
Ты же говоришь, что читал ?!
Улыбка)
Код
Выбрать все
	База = СоздатьОбъект("OLEDBData");
    Соединение = "Provider=VFPOLEDB.1;Data Source=" + КаталогИБ() + ";Mode=ReadWrite;Collating Sequence=MACHINE";
	Рез = База.Соединение(Соединение);
	Запрос = База.СоздатьКоманду();
	Запрос.Выполнить("EXECSCRIPT('SET ANSI OFF')");
	Запрос.Выполнить("EXECSCRIPT('SET REPROCESS TO 60 SECONDS')");
	Запрос.Выполнить("EXECSCRIPT('SET REFRESH TO 0,-1')");
	Запрос.Выполнить("Exec('SET TABLEVALIDATE TO 0')");// Отключили блокировки
	//Запрос.Выполнить("EXECSCRIPT('SET EXCLUSIVE  ON')");
	ТекстЗапроса ="
	|insert into
	|$Справочник.Контрагенты
	|Select *
	|From
	|$Справочник.Контрагенты  Контрик
	|Where Контрик.id =:ВыбКонтрагент";
	Запрос.УстановитьТекстовыйПараметр("Контрик", Клиентос);
	Запрос.ВыполнитьИнструкцию(ТекстЗапроса); 

  
Наверх
 
IP записан
 
nop
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 17
Местоположение: Украина, Харьков
Зарегистрирован: 14. Сентября 2011
Re: Как отредактировать движения документов по регистрам остатков?
Ответ #18 - 14. Октября 2011 :: 08:41
Печать  
а с ODBCDataBase, ODBCRecordSet мне не судьба работать, раз DBF база ?
  
Наверх
ICQ  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Как отредактировать движения документов по регистрам остатков?
Ответ #19 - 14. Октября 2011 :: 08:44
Печать  
Нет.
Он для sql заточен.
  
Наверх
 
IP записан
 
nop
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 17
Местоположение: Украина, Харьков
Зарегистрирован: 14. Сентября 2011
Re: Как отредактировать движения документов по регистрам остатков?
Ответ #20 - 14. Октября 2011 :: 08:50
Печать  
Спасибо, не знал. Буду выкручивается через него, чем он мне не понравился сначала - не помню. ODBCRecordSet побогаче методами показался.
  
Наверх
ICQ  
IP записан
 
nop
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 17
Местоположение: Украина, Харьков
Зарегистрирован: 14. Сентября 2011
Re: Как отредактировать движения документов по регистрам остатков?
Ответ #21 - 14. Октября 2011 :: 13:41
Печать  
Код
Выбрать все
ТекстСКЛ	= "DELETE FROM	 $Регистр.Взаиморасчеты WHERE iddoc IN ?"; 



как правильно передать массив?

Код
Выбрать все
	docs = "";
	RS.УложитьСписокОбъектов(сзДоки, docs);
	ТекстСКЛ	= "DELETE FROM	 $Регистр.Взаиморасчеты WHERE iddoc IN (SELECT Val FROM "+docs+")";
	Сообщить("/// " + docs);
	Если RS.Выполнить(ТекстСКЛ) = 0 Тогда
		х = 0/0;
	КонецЕсли;
 



Вроде и ошибок нет, но и движения не удалились.
  
Наверх
ICQ  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Как отредактировать движения документов по регистрам остатков?
Ответ #22 - 14. Октября 2011 :: 14:42
Печать  
Ну , что написал, то и получил..
Улыбка

Код
Выбрать все
ТекстЗапроса="
|DELETE FROM	 $Регистр.Взаиморасчеты WHERE iddoc IN (select val from :СписокДоков)";

врСписок="";
Запрос.УложитьСписокОбъектов(ТвойСписокСДокументами, врСписок);
Запрос.УстановитьТекстовыйПараметр("СписокДоков", врСписок);
Запрос.ВыполнитьИнструкцию(ТекстЗапроса);
 

  
Наверх
 
IP записан
 
nop
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 17
Местоположение: Украина, Харьков
Зарегистрирован: 14. Сентября 2011
Re: Как отредактировать движения документов по регистрам остатков?
Ответ #23 - 14. Октября 2011 :: 16:41
Печать  
вот оно как подсовывать имя таблицы. Роль ":" не понял, все равно спасибо, Ёпрст. В Вс попробую

P.S. Ухты, я стал юным членом! Я снова молод!
  
Наверх
ICQ  
IP записан
 
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
Re: Как отредактировать движения документов по регистрам остатков?
Ответ #24 - 28. Октября 2011 :: 13:47
Печать  
при работе с OleDbCommand

УложитьСписокОбъектов() создает dbf  файл в базе, со случайным наименованием. это наименование присваивается переменной, переданной в метод, т.е. текст запроса м.сформировать только после применения метода
  
Наверх
ICQ  
IP записан
 
Faith No More
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 6
Зарегистрирован: 27. Марта 2012
Пол: Мужской
Re: Как отредактировать движения документов по регистрам остатков?
Ответ #25 - 27. Марта 2012 :: 10:31
Печать  
Стоит задача:
  • удалить движения документа по определённому регистру;
  • записать на их место новые;
  • откорректировать таблицу итогов регистра с учётом предыдущих двух действий с таблицей движений.


Затруднение вызывает выполнение 3-го пункта. Задача заключается в постоянном выполнении таких действий параллельно с работой пользователей. Поэтому пересчёт итогов - не решение.

Подскажите, плиз.

Спасибо.
  
Наверх
 
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как отредактировать движения документов по регистрам остатков?
Ответ #26 - 27. Марта 2012 :: 10:53
Печать  
Если dbf, и вставить надо несколько движений всего, то лучше использовать какой то вьювер (WdbfView) и в нем вставить, при этом получив желаемые ИД предварительно из 1С через MetaDataWork.
  
Наверх
IP записан
 
Faith No More
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 6
Зарегистрирован: 27. Марта 2012
Пол: Мужской
Re: Как отредактировать движения документов по регистрам остатков?
Ответ #27 - 27. Марта 2012 :: 10:58
Печать  
Пардон, забыл написать: база в варианте SQL.
Удалить/Вставить - тут вопросов нет, примеров на эту тему достаточно.
Мне нужно, чтобы это удаление/вставка, которое я сделаю в таблице движений, была корректно отражена в таблице итогов. Как это организовать?

pvase писал(а) 27. Марта 2012 :: 10:53:
Если dbf, и вставить надо несколько движений всего, то лучше использовать какой то вьювер (WdbfView) и в нем вставить, при этом получив желаемые ИД предварительно из 1С через MetaDataWork.

  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Как отредактировать движения документов по регистрам остатков?
Ответ #28 - 27. Марта 2012 :: 12:23
Печать  
Faith No More писал(а) 27. Марта 2012 :: 10:31:
Стоит задача:
  • удалить движения документа по определённому регистру;
  • записать на их место новые;
  • откорректировать таблицу итогов регистра с учётом предыдущих двух действий с таблицей движений.


Затруднение вызывает выполнение 3-го пункта. Задача заключается в постоянном выполнении таких действий параллельно с работой пользователей. Поэтому пересчёт итогов - не решение.

Подскажите, плиз.

Спасибо.

А можете обосновать саму задачу ?
Вы идете как бы против логики 1с-приложения и поэтому в такой постановке задачи очень много подводных камней.
наихудшее что Вы можете получить при решении Вашей задачи нарушение логической целостности данных
ps ну и может вынести Ваш вопрос в отдельную ветку?
  
Наверх
 
IP записан
 
Faith No More
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 6
Зарегистрирован: 27. Марта 2012
Пол: Мужской
Re: Как отредактировать движения документов по регистрам остатков?
Ответ #29 - 27. Марта 2012 :: 12:39
Печать  
Я согласен, что камней - много.

Задача следующая: поддерживать актуальность взаиморасчётов в режиме реального времени. Сейчас просрочка и прочие данные, которые можно получить из этого раздела учёта, справедливы только утром, после ночного перепроведения базы. Если в течение дня меняли задним числом документы, просрочка может стать неактуальной.
Т.е. нужно в течение дня перепроводить цепочки документов. Чтоб не вешать базу и не утыкаться в "Документ заблокирован...", хочу попробовать рассчитывать движения и писать их в регистр, не трогая документы.

Z1 писал(а) 27. Марта 2012 :: 12:23:
Faith No More писал(а) 27. Марта 2012 :: 10:31:
Стоит задача:
  • удалить движения документа по определённому регистру;
  • записать на их место новые;
  • откорректировать таблицу итогов регистра с учётом предыдущих двух действий с таблицей движений.


Затруднение вызывает выполнение 3-го пункта. Задача заключается в постоянном выполнении таких действий параллельно с работой пользователей. Поэтому пересчёт итогов - не решение.

Подскажите, плиз.

Спасибо.

А можете обосновать саму задачу ?
Вы идете как бы против логики 1с-приложения и поэтому в такой постановке задачи очень много подводных камней.
наихудшее что Вы можете получить при решении Вашей задачи нарушение логической целостности данных
ps ну и может вынести Ваш вопрос в отдельную ветку?

  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 3 
ОтправитьПечать