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)Спасибо за поддержку и за внимание к теме Буду рад увидеть более компактный и красивый способ. Может при случае сам поищу. | |
| Интернет-форум Краснодарского края и Краснодара |