Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Горячая тема (более 10 ответов) менять время документа у объекта, представляющего документ в памяти. 1с++ т (число прочтений - 14776 )
Захар Малиновский
Junior Member
**
Отсутствует


1C++ active user

Сообщений: 53
Местоположение: г. Харьков
Зарегистрирован: 26. Февраля 2009
менять время документа у объекта, представляющего документ в памяти. 1с++ т
14. Мая 2010 :: 06:58
Печать  
Можно ли исправить вообще 1с++ так , что бы добавить некий метод в класс 1с++ ExecuteModule , что бы этот метод менял время у объекта "контекстдокумента" в памяти.

Я так понимаю в СDocContext время устанавливает SetPropValue, которая уже не есть чать 1с++.
Мне поменять время нужно в момент проведения. Мне нужно что бы после ОбработкаПроведения() 1с записало в _1sjourn уже новое время документа.
Хоть скажите дотянуться в 1с++ до памяти выделенной 1с под хранение того что она считала select * from _1sjourn where iddoc = ?  можно ?
  
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: менять время документа у объекта, представляющего документ в памяти. 1с++ т
Ответ #1 - 14. Мая 2010 :: 07:04
Печать  
Дык придётся во все таблички записать новое время (date_time_iddoc)...
А оно вообще надо ?
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: менять время документа у объекта, представляющего документ в памяти. 1с++ т
Ответ #2 - 14. Мая 2010 :: 07:12
Печать  
Опиши задачу - зачем во время проведения нужно менять дату документа?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Захар Малиновский
Junior Member
**
Отсутствует


1C++ active user

Сообщений: 53
Местоположение: г. Харьков
Зарегистрирован: 26. Февраля 2009
Re: менять время документа у объекта, представляющего документ в памяти. 1с++ т
Ответ #3 - 14. Мая 2010 :: 07:23
Печать  
Нужно чтобы документы не проводились, если нет партий товаров на остатках. Ведь Время ставиться в момент записи,  а таких записываемых но еще не проведенных документов может быть несколько у нескольких пользователей. И вот они потом начинают их проводить, и последовательность проводимых документов такая: сначала последний по позиции документ провдится, ему хватает тМЦ, потом пред последний документ , ему тоже хватает ТМЦ. Итак ВСЕМ хватает.
Придумал хранить некую границу, на которую расчитывать остатки товаров, чтобы каждый проводимый документ записывался после этой границы. Ну и соответственно выставлял границу на себя, для последующих проводимых документов.
  
Наверх
IP записан
 
Захар Малиновский
Junior Member
**
Отсутствует


1C++ active user

Сообщений: 53
Местоположение: г. Харьков
Зарегистрирован: 26. Февраля 2009
Re: менять время документа у объекта, представляющего документ в памяти. 1с++ т
Ответ #4 - 14. Мая 2010 :: 07:26
Печать  
Таблицы где хранится время документа только одна - _1sjourn, а так ощущаю что и место в памяти для каждого объекта класса "документ", где храниться считанное время - тоже одно.
  
Наверх
IP записан
 
Захар Малиновский
Junior Member
**
Отсутствует


1C++ active user

Сообщений: 53
Местоположение: г. Харьков
Зарегистрирован: 26. Февраля 2009
Re: менять время документа у объекта, представляющего документ в памяти. 1с++ т
Ответ #5 - 14. Мая 2010 :: 07:30
Печать  
да, вот вспомнил что date_time_iddoc еще есть в таблицах регистров, но они ведь при каждом проведении  удалаються все.
  
Наверх
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: менять время документа у объекта, представляющего документ в памяти. 1с++ т
Ответ #6 - 14. Мая 2010 :: 07:39
Печать  
ПроводитьПослеТА(1,1);
не то?
  

1&&2&&3
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: менять время документа у объекта, представляющего документ в памяти. 1с++ т
Ответ #7 - 14. Мая 2010 :: 07:42
Печать  
Чем ТА на устраивает для такой задачи ?
Проводи реальным временем со сдвигом ТА, вот и будет всегда, последний док - на границе ТА..
всё собственно.
  
Наверх
 
IP записан
 
Захар Малиновский
Junior Member
**
Отсутствует


1C++ active user

Сообщений: 53
Местоположение: г. Харьков
Зарегистрирован: 26. Февраля 2009
Re: менять время документа у объекта, представляющего документ в памяти. 1с++ т
Ответ #8 - 14. Мая 2010 :: 07:47
Печать  
да. действительно, не вспомнил. Мне ПроводитьПослеТА(1,-1) подойдет.

TRAD, ну а вообще скажи , пожалуйста, дотянуться _легко_ до памяти где 1с хранит время объекта "документ" можно ?
Или там для 1с++ неизввестные структуры ?
  
Наверх
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: менять время документа у объекта, представляющего документ в памяти. 1с++ т
Ответ #9 - 14. Мая 2010 :: 08:08
Печать  
Захар Малиновский писал(а) 14. Мая 2010 :: 07:47:
TRAD, ну а вообще скажи , пожалуйста, дотянуться _легко_ до памяти где 1с хранит время объекта "документ" можно ?
я не знаю
  

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


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: менять время документа у объекта, представляющего документ в памяти. 1с++ т
Ответ #10 - 14. Мая 2010 :: 09:16
Печать  
Захар Малиновский писал(а) 14. Мая 2010 :: 07:30:
да, вот вспомнил что date_time_iddoc еще есть в таблицах регистров, но они ведь при каждом проведении  удалаються все.

это если включена галка быстрая обработка движений
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: менять время документа у объекта, представляющего документ в памяти. 1с++ т
Ответ #11 - 14. Мая 2010 :: 10:19
Печать  
Захар Малиновский писал(а) 14. Мая 2010 :: 07:47:
TRAD, ну а вообще скажи , пожалуйста, дотянуться _легко_ до памяти где 1с хранит время объекта "документ" можно ?
Или там для 1с++ неизввестные структуры ?

Дотянуться можно, но ИМХО пока нету разработчиков Печаль
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Захар Малиновский
Junior Member
**
Отсутствует


1C++ active user

Сообщений: 53
Местоположение: г. Харьков
Зарегистрирован: 26. Февраля 2009
Re: менять время документа у объекта, представляющего документ в памяти. 1с++ т
Ответ #12 - 14. Мая 2010 :: 11:24
Печать  
Не , мужики, мне ПроводитьПослеТА(1,1) не подходит.
  Потому как часть документов сегодня проводится на завтра, и должна получать итоги регистров (а именно взаиморасчеты) на завтра. Им нужна ТА на завтра. иначе итоги не получат.
А сегодняшним документам нужна некая ещё граница, которую я в пояснении к первому посту описал. Что бы они _сегодня_ не использовали несуществующих партий товаров ну и попутно не оставляли после себя отриц остатков товаров.

думаю как же быть.
  
Наверх
IP записан
 
Noy
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 07. Ноября 2009
Re: менять время документа у объекта, представляющего документ в памяти. 1с++ т
Ответ #13 - 14. Мая 2010 :: 11:37
Печать  
Мне кажется вам просто нужно "оперативное проведение" (или как это правильно называют).
Принцип прост - все "свежие" документы (новые и с датой больше или равно сегодняшней) при проводке ориентируются на актуальные остатки (на ТА), а не свежие документы - на момент этого документа.
Это не избавляет от восстановления границы последовательности, но спасает от выписки товара в минус, при наличии проведенных документов на будущее.
+ выигрыш в скорости расчета остатков при проведении
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: менять время документа у объекта, представляющего документ в памяти. 1с++ т
Ответ #14 - 14. Мая 2010 :: 11:38
Печать  
А не проще ли писать запрос получающий остатки
1) На ТА
2) На момент проведения документа
и соответственно включать только те партии которые свободны и на момент проведения документа и на ТА?
У меня так и сделано.
  
Наверх
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: менять время документа у объекта, представляющего документ в памяти. 1с++ т
Ответ #15 - 14. Мая 2010 :: 11:45
Печать  
leshik писал(а) 14. Мая 2010 :: 11:38:
А не проще ли писать запрос получающий остатки
1) На ТА
2) На момент проведения документа
и соответственно включать только те партии которые свободны и на момент проведения документа и на ТА?
У меня так и сделано.

Я тоже всегда думал, что все так и делают  Улыбка
  
Наверх
 
IP записан
 
Захар Малиновский
Junior Member
**
Отсутствует


1C++ active user

Сообщений: 53
Местоположение: г. Харьков
Зарегистрирован: 26. Февраля 2009
Re: менять время документа у объекта, представляющего документ в памяти. 1с++ т
Ответ #16 - 14. Мая 2010 :: 12:21
Печать  
JohnyDeath писал(а) 14. Мая 2010 :: 11:45:
leshik писал(а) 14. Мая 2010 :: 11:38:
А не проще ли писать запрос получающий остатки
1) На ТА
2) На момент проведения документа
и соответственно включать только те партии которые свободны и на момент проведения документа и на ТА?
У меня так и сделано.

Я тоже всегда думал, что все так и делают  Улыбка


Я до этого не додумался.  Вот вы молодцы. Хоят в моём случае будет два расчета: 1) на конец сегодняшнего дня и 2) на сам документ.  Завтрашний день у нас удет в минус, потому как завтрашний приход  будет только завтра утром.

Хотя конечно "всего лишь" поменять время документа во время проведения сегодня сегодняшнего документа   -   лучше. Тогда документу остатки контролировать только на момент себя нужно.

А вообще спасибо за подсказку.
  
Наверх
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: менять время документа у объекта, представляющего документ в памяти. 1с++ т
Ответ #17 - 14. Мая 2010 :: 12:44
Печать  
А не проще ли завтр. приход писать в другой регистр ?
  
Наверх
 
IP записан
 
Захар Малиновский
Junior Member
**
Отсутствует


1C++ active user

Сообщений: 53
Местоположение: г. Харьков
Зарегистрирован: 26. Февраля 2009
Re: менять время документа у объекта, представляющего документ в памяти. 1с++ т
Ответ #18 - 14. Мая 2010 :: 13:37
Печать  
Z1 писал(а) 14. Мая 2010 :: 12:44:
А не проще ли завтр. приход писать в другой регистр ?

Я понял, понял.
Но всё же я про смену времени спрошу в тех кто писал на с++ в 1с++:
возможно я фигню спрашиваю - вы меня уж простите - профан.
вот в файле basic.h
есть :
"class IMPORT_1C CDocEnvironContext:public CBLContext
{
DECLARE_DYNCREATE(CDocEnvironContext)

public:
      CDocEnvironContext(void);      //10
     virtual  ~CDocEnvironContext(void);      //64
     void  AfterPost(void);      //167
     void  BeforePost(void);      //169
......
"
вот это void  BeforePost(void) переопределить так чтобы туда свой код вставить,  можно ?
Это void  BeforePost(void) вызывается до чтения 1с "select * from _1sentry where iddoc = наш_документ"  ?  если до то может там  сделать update _1sjourn на нужный мне date_time_iddoc ?

  
Наверх
IP записан
 
Захар Малиновский
Junior Member
**
Отсутствует


1C++ active user

Сообщений: 53
Местоположение: г. Харьков
Зарегистрирован: 26. Февраля 2009
Re: менять время документа у объекта, представляющего документ в памяти. 1с++ т
Ответ #19 - 14. Мая 2010 :: 14:00
Печать  
а может можно использовать как то событие вызываемое до проведения ? может ПриНачалеБлокировкиОбъекта.
  
Наверх
IP записан
 
Захар Малиновский
Junior Member
**
Отсутствует


1C++ active user

Сообщений: 53
Местоположение: г. Харьков
Зарегистрирован: 26. Февраля 2009
Re: менять время документа у объекта, представляющего документ в памяти. 1с++ т
Ответ #20 - 14. Мая 2010 :: 14:10
Печать  
Дорогой artbear ,  вспомни была вот такая тема : (перед блокировкой объекта).

http://www.1cpp.ru/forum/YaBB.pl?num=1179757719/36#36

  
Наверх
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: менять время документа у объекта, представляющего документ в памяти. 1с++ т
Ответ #21 - 14. Мая 2010 :: 14:13
Печать  
Легких путей не ищешь!  Очень довольный
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: менять время документа у объекта, представляющего документ в памяти. 1с++ т
Ответ #22 - 15. Мая 2010 :: 03:34
Печать  
Захар Малиновский писал(а) 14. Мая 2010 :: 14:10:
Дорогой artbear ,  вспомни была вот такая тема : (перед блокировкой объекта).

http://www.1cpp.ru/forum/YaBB.pl?num=1179757719/36#36

К сожалению, сейчас разработкой 1С++ и ФормЕкс не занимаюсь.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать