К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

77-83

Гость
0 - 21.02.2017 - 11:16
Из 7.7 по OLE делаю сверку документов с БП 3.0. И все бы замечательно, выбираются, сверяются, но не могу сделать
маленький "бантик" - получить время документа БП 3.0 из реквизита "Дата" документа бухгалтерии. Вроде простая задача, но как то не выходит. База83.XMLСтрока(Док83.Дата) дает дату и следом нулевое время, хотя время есть.



Гость
1 - 21.02.2017 - 12:08
И не получишь. Напрямую. "Семерошное" OLE датавремя не знает.
Поступай обычным способом: читай строковое представление.
Конечно, в структуре записи должно быть предусмотрено и поле "Время".
Гость
2 - 21.02.2017 - 12:43
(1)то что клюшки напрямую не знают ДатаВремя это понятно и очевидно. Я думал как то с помощью методов 8.3 выделить это время, но мне ничего вызвать из клюшек не удалось
Ради получения времени делать дополнительное поле меня останавливает внутреннее чувство. Какое то решение должно быть ) Наиболее частый ответ - вызывай из снеговика клюшки, но мне этот ответ не кажется очевидным. Там при работе по COM есть свои неудобства. Хотя контрагентов и их договоры я именно так в 7-ку пихал
Гость
3 - 21.02.2017 - 14:08
2-USSR > Про EvalExsr напомнить? Про Формат()? Который и в "восьмерке" доступен?
Гость
4 - 21.02.2017 - 14:55
(3)Напомнить всегда полезно, но вот в отладчике пробовал
БазаOLE.Format(Док83.Дата, "ДЛФ=Т"), получил фигу, пишет что неверное выражение. Уж неужели бы я формат не попробовал. Потому и обратился к тем кто реально делал
Гость
5 - 21.02.2017 - 14:59
4-USSR >EvalExsr(<выражение>)
Гость
6 - 21.02.2017 - 15:44
(5)это незнакомый мне синтаксис,знаю только EvalExpr, но он в контексте клюшек
7 - 21.02.2017 - 16:40
Надеяться, что OLE "научит" 7.7 восьмерочным методам - это полное непонимание механизма OLE.
Гость
8 - 21.02.2017 - 17:04
(8)а по сути что то есть, или только так, на вентилятор ? я и не собирался стать магистром по OLE или COM. Не все же умные уродились
9 - 21.02.2017 - 17:24
Память у меня, конечно, уже не та, что раньше, но и склерозом пока не страдаю, в отличие от некоторых.

Поэтому по сути: "на вентилятор" - это именно то, чего заслуживает "говнюк" (с)
Гость
10 - 21.02.2017 - 17:32
(9)тебя сюда звали ?)
Гость
11 - 21.02.2017 - 18:43
6-USSR > Конечно, EvalExpr. Поношенная клавиатура, севшее зрение и ctrl-V способствует ошибкам ;)

"пишет что неверное выражение" - во! Выражение было принято, проанализировано, и признано неправильным.
Итак:
ДатаВремя = БазаOLE.Format(Док83.Дата, "ДЛФ=Т");
Пусть так, без EvalExpr. Но синтаксис v77 должен быть соблюден. Т.е., "семерошной" команде должен быть известен объект Док83. И его свойство Дата. Иначе - "неверное выражение". Это тебе не OLE говорит. И не 1CV8 - "восьмерка" еще ничего не получила.
Вот потому и важно применение EvalExpr() - все, что внутри скобок, отдается серверу OLE, т.е. 1Cv8.
И сервер ОЛЕ будет разбирать содержимое внутри скобок.
И клиент ОЛЕ получит строку, возможно, пустую.

OLE плохо отлаживается. Команды, выполняющиеся через ОЛЕ лучше заранее отрепетировать на стороне сервера: на клиенте ошибок не увидишь.
Гость
12 - 22.02.2017 - 07:40
Короче, немного через известное место, но удалось победить. Для требуемой ссылки на документ 8.3 OLE запросом получаю число секунд от начала дня, а затем уже средствами 7.7 из полученных секунд выражаю время документа ЧЧ:ММ:CC
(VZ)Спасибо за поддержку и за внимание к теме
Буду рад увидеть более компактный и красивый способ. Может при случае сам поищу.


К списку вопросов






Copyright ©, Все права защищены