Работа по OLE

Форум 1С: Одинэс.Ру

Найти!

Работа по OLE

Anonymous
22.04.2009 - 08:57
Как реквизиту справочника базы подключенной по OLE присвоить значение пустой даты?
К списку тем 1 > К списку форумов

Интересные темы

odines.ru
21.11.2024 - 21:20
Смотри также:
Когда рухнет база?
1CBarCod.dll
Как сохранить отчет в PRN

Re: Работа по OLE

Друзья зовут меня Курулай
1 - 22.04.2009 - 09:00
а в чём проблема?
берёшь и тупо присваиваешь пустое значение даты
дата - простой тип.
 

Re: Работа по OLE

Lexusss
2 - 22.04.2009 - 09:08
Нарвался на 31.12.1899?

Re: Работа по OLE

VZ
3 - 22.04.2009 - 09:44
(1) Вот как раз тупо не удастся ;) Понятие "пустая дата" очень спицыфична, чтоб ОЛЕ понимала ее так, как понимают разработчики движка 1С :))
Придется через метод Дата() ;)

Re: Работа по OLE

Друзья зовут меня Курулай
4 - 22.04.2009 - 09:50
(3) согласен, через Дата() готичнее

Re: Работа по OLE

Anonymous
5 - 22.04.2009 - 09:55
прошу упрощения, а как это через метод Дата()

Интересные темы

odines.ru
21.11.2024 - 21:20
Смотри также:
Камин ЗП не пойму как задать экр для начислений
Невозможно запустить 1С ПУБ
Вышли 504 бухгалтерия и 152 Предприниматель

Re: Работа по OLE

Друзья зовут меня Курулай
6 - 22.04.2009 - 10:04
(5) приведи свой код, в котором передаёшь дату

Re: Работа по OLE

Anonymous
7 - 22.04.2009 - 10:09
Функция ОпределениеЗначенияСпр(вхТип, вхЗначение)
Перем Воз;
 
Если вхТип="Дата" Тогда
Воз  = Дата(вхЗначение);
ИначеЕсли вхТип="Число" Тогда
Воз = Число(вхЗначение);
и тд..

Re: Работа по OLE

Anonymous
8 - 22.04.2009 - 10:13
и потом
текОбъект.УстановитьАтрибут(НаимРеквизита, Воз);
где текОбъект - справочник базы OLE

Re: Работа по OLE

Lexusss
9 - 22.04.2009 - 10:30
(8) Скажи что получается в результате!

Re: Работа по OLE

Anonymous
10 - 22.04.2009 - 10:32
а ничего. в базе стоит 31.12.99, я просто хочу очистить значение реквизита. А он меня сволочь игнорирует...

Re: Работа по OLE

Anonymous
11 - 22.04.2009 - 11:00
самое что примечательное. Если прочитать по OLE, ну скажем пустую константу с типом дата, то она покажет не пустое значение, а 31.12.99

Re: Работа по OLE

Anonymous
12 - 22.04.2009 - 11:00
граждане, не оставляйте собрата в беде подкиньте идейку...

Re: Работа по OLE

Друзья зовут меня Курулай
13 - 22.04.2009 - 11:10
навскидку так:
 
Если (ТипЗначенияСтр(Воз) = "Дата") и (ПустоеЗначение(Воз) = 1) Тогда
   текОбъект.УстановитьАтрибут(НаимРеквизита, Там.Шаблон("Дата(0,0,0)"));
КонецЕсли;
 
PS.  "Там" - это OLE-объект
 

Re: Работа по OLE

Друзья зовут меня Курулай
14 - 22.04.2009 - 11:13
или лучше попробуй так:
 
ПустаяДатаТам = Там.ПолучитьПустоеЗначение("Дата");
 
Если (ТипЗначенияСтр(Воз) = "Дата") и (ПустоеЗначение(Воз) = 1) Тогда
   текОбъект.УстановитьАтрибут(НаимРеквизита, ПустаяДатаТам);
КонецЕсли;

Re: Работа по OLE

Lexusss
15 - 22.04.2009 - 11:15
(11) На самом деле (если включить 4-х значные даты) это 31.12.1899, о чем я и спросил тебя в самом начале.
(12) Пусть v7 - это OLE сервер с глобальной переменной глРасшифровка (как правило она есть). Тогда пишем
v7.глРасшифровка = текОбъект;
v7.ExecuteBatch("глРасшифровка."+НаимРеквизита+"=0;");
(14) К сожалению, дата - это простой тип поэтому при передаче через OLE он передается сконвертированным в понятия OLE.

Re: Работа по OLE

Друзья зовут меня Курулай
16 - 22.04.2009 - 11:20
(15) а разве в (14) где-то передаётся дата по OLE ?

Re: Работа по OLE

Lexusss
17 - 22.04.2009 - 11:25
Там.ПолучитьПустоеЗначение("Дата") вернет значение типа Дата. И оно уже будет 31.12.1899.

Re: Работа по OLE

Друзья зовут меня Курулай
18 - 22.04.2009 - 11:30
инструкция Там.ПолучитьПустоеЗначение("Дата") не передаёт дату по OLE
она вызывает на той стороне метод ПолучитьПустоеЗначение()
соответственно, этот метод сгенерирует и вернут пустую дату на той стороне

Re: Работа по OLE

reanimator
19 - 22.04.2009 - 11:34
(0) ПолучитьПустоеЗначение() спасёт отца русской демократии.

Re: Работа по OLE

Lexusss
20 - 22.04.2009 - 11:40
(18) При вызове из v7 сервера v7 с пустой датой возвращается 31.12.1899, ибо это пустая дата в понятии Microsoft - дата начала времен.
Т.к. для 1С - это уже конкретная дата, т.к. начало времен у 1С на 100 с лишним лет раньше :-D
ЗЫ: Спорить больше не буду, правоту определит ShaggyPVP экспериментальным путем.
ЗЗЫ: С 8-кой та же беда. До сих пор кой где в базе, дозаполненной через OLE, встречаются перлы с 99-м годом.

Re: Работа по OLE

Друзья зовут меня Курулай
21 - 22.04.2009 - 11:45
(20) спорить и не надо.
мы имеем в переменной "Там" OLE-объект, с соответствующим "потусторонним" контекстом.
инструкция Там.ПолучитьПустоеЗначение("Дата") работает на той стороне, в "потустороннем" контексте.
Соответственно, пустую дату она вернёт тоже "потустороннюю". На той стороне (в том контексте) это будет именно пустая дата, а не 31.12.1899.

Re: Работа по OLE

Gloom
22 - 22.04.2009 - 13:00
(21)"инструкция Там.ПолучитьПустоеЗначение("Дата") работает на той стороне, в "потустороннем" контексте."
 
Но выражение-то "ПустаяДатаТам = " находится и выполняется в текущем контексте.
Хе-хе...

Re: Работа по OLE

Anonymous
23 - 22.04.2009 - 13:23
Самое интересное, что и при подключении 1Спредприятия отображается вместо пустой даты 30.12.99. Программно почистить не удается вроде и не пустое, а в то же время пустое. А интерактивно редактирование закрыто.

Re: Работа по OLE

Anonymous
24 - 22.04.2009 - 13:25
Спасибо за помощь и участие.

Re: Работа по OLE

Lexusss
25 - 22.04.2009 - 13:28
(23) Неужели метод из (15) не сработал?

Re: Работа по OLE

Друзья зовут меня Курулай
26 - 22.04.2009 - 13:57
(22) выражение "ПустаяДатаТам = "  выполняется на той стороне и в потустороннем контексте.

Re: Работа по OLE

Gloom
27 - 22.04.2009 - 14:14
(26)Хе-хе...
 
(0)Да, кстати по сабжу - я в своё время так делал:
СправочникБанковскиеСчета.ДатаЗакрытияСчета = "";

Re: Работа по OLE

reanimator
28 - 22.04.2009 - 17:08
(0) ПолучитьПустоеЗначение() спасёт отца русской демократии.

Re: Работа по OLE

Cthulhu
29 - 22.04.2009 - 17:30
ахринеть...
а устанавливать просто нолег или пустую строку - не пробовали?..
К списку тем 1 > К списку форумов

Добавить новое сообщение

Ваше имя:
Тема сообщения:
Сообщение:
« Штатное движение по корпоративным кредитным картам в комплексной 1С 7.7? В конфигураторе - реквизиты есть, в пользовательском режиме - нет... »
© 2009 Форум 1С: Одинэс.Ру