Имя: Пароль:
1C
1C 7.7
v7: Дата документа в клюшках (7.7)
,
0 shag008
 
23.07.14
09:22
При вводе нового документа необходимо чтобы ДатаДок была пустая. В процедуре ВводНового() пишу ДатаДок = "". Дата всё равно ставится. Возможно очистить дату при вводе нового документа? На вопрос "Зачем?" - так надо. При записи документ будет проверятся на пустую дату.
1 tdm
 
23.07.14
09:23
>>ДатаДок была пустая
даже не знаю что и сказать.....зачем?
2 shag008
 
23.07.14
09:27
(1) чтоб пользователь сам ставил нужную дату. Т.е. при записи документа задумывался на какую дату его записать. В процедуре ПриЗаписи() стоит проверка на пустую дату и выдается соответствующее предупреждение
3 ДенисЧ
 
23.07.14
09:28
бред
4 1Сергей
 
23.07.14
09:28
(2) можно сделать другой реквизит и играться с его видимостью
5 shag008
 
23.07.14
09:29
(3) не спорю
меня сама возможность интересует
Или это в платформе зашито?
6 shag008
 
23.07.14
09:31
(4) скорее всего так и придется. Спасибо.
7 ДенисЧ
 
23.07.14
09:32
(5) Да, зашито
8 shag008
 
23.07.14
09:33
(7) ок
9 kupec
 
23.07.14
09:38
а если попробовать в ПриОткрытии() проверять таким образом
Если Выбран()=0 Тогда
ДатаДок="";
КоецЕсли;
10 oslokot
 
23.07.14
09:39
(0) а это не разве не поможет?
Док.Дата = ПолучитьПустоеЗначение("Дата");
11 oslokot
 
23.07.14
09:40
(0) ну или в ПослеСозданияФормы() убирай дату
12 shag008
 
23.07.14
09:43
(10) не работает
13 kupec
 
23.07.14
09:43
Проверял и так (9) и так (10) не срабатывает, даже если интерактивно удалить дату система не дает править вообще ничего, т.к. не выбрана дата
14 kupec
 
23.07.14
09:44
можно ставить дату 01.01.2001 и при сохранении проверять на дату запрета редактирования
15 shag008
 
23.07.14
09:47
(14) или так или через доп реквизит
16 kupec
 
23.07.14
09:48
решай сам ))
17 mishaPH
 
модератор
23.07.14
09:58
(0) датаДок = дата(0);
18 shag008
 
23.07.14
10:02
(17) так тоже нет
19 Мимохожий Однако
 
23.07.14
10:05
Сделай промежуточную обработку аналогичную форме документа и в ней проставляй дату, а эта обработка при подтверждении будет тебе дальше создавать документ.
ЗЫ. Хотя постановка задачи вызывает удивление.
20 ProxyInspector
 
23.07.14
10:05
Используй ОбработкаОжидания().
При открытии проверяй Выбран()=0 и один раз запускай процедуру с ДатаДок = ""
21 mishaPH
 
модератор
23.07.14
10:05
значит это невозможно. зашито на уровне платформы после открытия формы. если дата не назначена назначить рабочую.
22 mishaPH
 
модератор
23.07.14
10:06
при вводе нового назнач например 01.01.01. при записи проверяй. чтобы такой даты небыло
23 polOwnik
 
23.07.14
10:07
(18)
Попробуй
ДатаДок='';
24 shag008
 
23.07.14
10:07
(22) см (14) и (15)
Всем спасибо
25 shag008
 
23.07.14
10:07
(23) так в (0) написано. Не работает
26 polOwnik
 
23.07.14
10:09
(25)
Не "", а 2 символа '.
27 shag008
 
23.07.14
10:12
(19) постановка задачи следующая - есть документ, который устанавливает цены, которые выгружаются на кассы (сторонее ПО, не 1С). Документ можно записывать в будущих датах, т.е. заранее установить цену  допустим, на 30 июля. Цены ставятся на дату документа. Директор хочет, чтоб менеджер, при установке цен, задумался на какую дату её устанавливает, а не тупо проводил документ текущей датой. Уменьшить ошибки ввода.
28 shag008
 
23.07.14
10:13
(26) нет
29 1Сергей
 
23.07.14
10:13
(27) Можно ещё при записи нового документа делать ВвестиДату
30 АЧтоТакое1С
 
23.07.14
10:49
(27) Мне кажется самый правильный вариант - это дополнительный реквизит на форме ДатаДок1. А ДатаДок убрать с форы. Ну и соответственно прописать нужные проверки с этой датой.
31 АЧтоТакое1С
 
23.07.14
10:50
+(30) Тогда для пользователя вообще ничего не изменится (кроме того, что при создании нового документа дата будет пустая)
32 aqua80
 
24.07.14
23:05
Парни, ну Вы чего!?
Пустая дата в семерке - не Дата("") или Дата(0), а Дата(0,0,0)
Курите мануал http://www.about1c.ru/v77/language-reference/system/data-types-functions/function-date
33 Злопчинский
 
25.07.14
02:15
(32)
?(Дата(0,0,0)=ПолучитьПустоеЗначение("Дата"),1,0) = 0
.
???
34 1Сергей
 
25.07.14
08:15
(33) хотел сказать, что нельзя сравнивать с пустым значением, но:

?(Дата(0,0,0)=Дата(0,0,0),1,0) = 1
?(ПолучитьПустоеЗначение("Дата")=ПолучитьПустоеЗначение("Дата"),1,0) = 1

:)

ЗЫ
ТипЗначенияСтр(Дата(0,0,0)) = Дата
ТипЗначенияСтр(ПолучитьПустоеЗначение("Дата")) = Дата
35 фобка
 
25.07.14
08:18
(32) пустая дата в семерке это '' или дата(0)
36 Рэйв
 
25.07.14
08:19
(0)Уверен, твой механизм, при котором нужна пустая дата можно реализовать по другому
37 mishaPH
 
модератор
25.07.14
08:19
(32) И давно?
38 фобка
 
25.07.14
08:20
(0) "В процедуре вводнового() пишу" - ну пиши в приоткрытии()
39 фобка
 
25.07.14
08:22
Делов то отладчиком пройтись + поиск по тексту модуля 2 минуты, а тема уже 2 дня висит
40 1Сергей
 
25.07.14
08:24
(39) тему не читал, но осуждаешь? :)
41 фобка
 
25.07.14
08:27
(40) чукча не читатель, чукча писатель ;)
42 chelentano
 
25.07.14
08:42
(27) тогда, наверное, было бы логичнее ввести новый реквизит "ДатаУстановкиЦены" и устанавливать цены на эту дату. Таким образом можно будет увидеть, когда был заведён документ и на какую дату он установил цену
43 1Сергей
 
25.07.14
08:45
(42) если периодический реквизит устанавливается документом (если правильно устанавливается), то Дата значения всегда равна дате документа
44 chelentano
 
25.07.14
08:47
(43) УстановитьРеквизитСправочника(<ЭлементСправочника>,<НазваниеРеквизита>,<Значение>,<ДатаУстановки>,<ИмяТипа>,<Длина>,<Точность>)

<ДатаУстановки> - дата установки нового значения периодического реквизита. Дата установки имеет смысл только для не оперативных документов.
45 chelentano
 
25.07.14
08:48
(43) Хорошая штука СП, правда?
46 1Сергей
 
25.07.14
09:17
(45) молодец, подъипнул. Возьми с полки пирожок
47 Duke1C
 
25.07.14
09:26
(42) + при записи документа 3 раза спросить "Вы точно хотите установить цены на эту дату???" для надежности )
48 NikVars
 
25.07.14
09:50
(0) Ту дату, что торчит на форме дока - спрячь.
Добавь новый реквизит - сделай его выдимым. Изначально он будет пустым. При записи будешь его проверять. Если дата в новом реквизите указана, то копируй ее в "стандартную дату" и проводи.
Доработок - минимум!
49 Барбариска
 
25.07.14
10:15
ДатаДок = Дата(-1)
В процедуре ВводНового()
И все )
Только конечно ничего пользователю редактировать не даст, пока  дату документа не заполнит правильно.
51 Ёпрст
 
25.07.14
11:02
(49) можно и так
ДатаДок = Дата(0,0,0);
52 Ёпрст
 
25.07.14
11:03
Хотя, это кто-то уже предлагал тут..
53 Барбариска
 
25.07.14
12:16
(51) забавно, всегда считала, что Дата(0) и Дата(0,0,0) это одно и то же ) оказывается, Дата(0,0,0) это как раз и есть Дата(-1)