Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
16 Дек 2017, 16:09
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Запрет изменения времени документа  (Прочитано 5176 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн minakov.dmitry

  • *
  • Сообщений: 13
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-01-13
  • Сайт: 
  • Профессия: Ученик 1С
Как сделать запрет изменения времени документа, сдвиг его в начало/конец дня? Документ непроводимый.


Оффлайн sergejK74

  • *****
  • Сообщений: 1093
  • РЕПУТАЦИЯ: 458
  • КПД: 42%
  • Всегда готов помочь!
  • Регистрация: 2011-07-08
  • Сайт: 
  • Профессия: Ученик 1С
Например, так в модуле объекта
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Документ1.Дата
|ИЗ
| Документ.Документ1 КАК Документ1
|ГДЕ
| Документ1.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка",Ссылка);
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Если ВыборкаДетальныеЗаписи.Следующий() Тогда
Если ВыборкаДетальныеЗаписи.Дата <> Дата Тогда
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Кнопочка Спасибо - слева!

Оффлайн AntonB

  • Модератор
  • *****
  • Сообщений: 402
  • РЕПУТАЦИЯ: 74
  • КПД: 18%
  • Регистрация: 2011-05-26
  • Сайт: 
  • Профессия: Программист 8.1
ой, как сложно то...
Вы объясните хоть, почему документ по ссылке получаете вот так - запросом?
и почему нельзя просто При Открытии сохранить дату в переменной,
а Перед Записью сравнить старую дату и новую?
Предлагаю полный ИТ сервис небольшой организации в Москве (приходящий сисадмин+1С7.7,1С8.x)

Оффлайн sergejK74

  • *****
  • Сообщений: 1093
  • РЕПУТАЦИЯ: 458
  • КПД: 42%
  • Всегда готов помочь!
  • Регистрация: 2011-07-08
  • Сайт: 
  • Профессия: Ученик 1С
просто не люблю глобальных переменных. плюс править если что в одном месте, можно и на подписку на события навешать.

Вообще это первое что пришло в голову по аналогии со сравнением с изменившийся табличной частью.
В твоем варианте наверное нужно будет учитывать что документ можно создать копированием или вводом по основанию. Там наверное старой даты не будет.
Кнопочка Спасибо - слева!

Оффлайн AntonB

  • Модератор
  • *****
  • Сообщений: 402
  • РЕПУТАЦИЯ: 74
  • КПД: 18%
  • Регистрация: 2011-05-26
  • Сайт: 
  • Профессия: Программист 8.1
да я то об этих тонкостях и сам догадываюсь... :)
но думаю, что ТС вообще может не понять даже идею,
как это работает, а не то что эти тонкости оценить...

хотя почему запросом - даже мне не понятно...
Предлагаю полный ИТ сервис небольшой организации в Москве (приходящий сисадмин+1С7.7,1С8.x)

Оффлайн sergejK74

  • *****
  • Сообщений: 1093
  • РЕПУТАЦИЯ: 458
  • КПД: 42%
  • Всегда готов помочь!
  • Регистрация: 2011-07-08
  • Сайт: 
  • Профессия: Ученик 1С
Запросом мы получаем старое значение времени документа по ссылке, такое которое записано в базе. Аналог глобальной переменной. Есть время по ссылке - замечательно. сравниваем его со значением из текущего объекта. Время разное - получаем отказ. Нет ссылки (документ новый) - выборка пустая - условие не проверяем.
Кнопочка Спасибо - слева!

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Только запрос дергает БД, а это не есть ГУД. Нужно использовать максимально то что у тебя храниться в памяти уже
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн sergejK74

  • *****
  • Сообщений: 1093
  • РЕПУТАЦИЯ: 458
  • КПД: 42%
  • Всегда готов помочь!
  • Регистрация: 2011-07-08
  • Сайт: 
  • Профессия: Ученик 1С
Из Продвинутого курса Гилева точно запомнил, что лучше лишний раз дернуть БД, чем заставлять переезжать упавший рабочий процесс между кластерами с кучей пользовательского добра (разных глобальных переменных и пр.). Предлагаю компромисс -  использование дополнительных свойств документов. Хотя код расползется по модулю объекта. 
Кнопочка Спасибо - слева!

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Все равно не пойму "Ссылка" и есть значение из БД зачем ее запросом еще раз получать?
МожноМенять = РольДоступна("ТотКомуМожноМенять");
Если Не МожноМенять Тогда
     Если Не ЭтоНовый() Тогда
         Если Ссылка.Дата <> Дата Тогда
             Отказ = Истина;
         КонецЕсли;
    КонецЕсли;
КонецЕсли;
И причём тут вообще Глобальные переменные?
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн sergejK74

  • *****
  • Сообщений: 1093
  • РЕПУТАЦИЯ: 458
  • КПД: 42%
  • Всегда готов помочь!
  • Регистрация: 2011-07-08
  • Сайт: 
  • Профессия: Ученик 1С
Так лучше. Ты прав. Если будет необходимость сделаю так. Глобальные переменные - проклятое наследие семерки, на которой приходится писать (запросом получал потому что нравятся ваши восьмерочные запросы после наших убогих семерочных. У меня после продвинутого курса сложилось впечатление, что в восьмерке все делают запросами. Оказывается нужно быть проще).
Кнопочка Спасибо - слева!


Теги:
 

Не открывает форму сохраненного документа, открывает форму нового.

Автор EHOTРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 4480
Последний ответ 13 Апр 2012, 23:26
от Vit1501
Автоматическое заполнение табличной части документа из табличной части другого

Автор WillРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 15944
Последний ответ 16 Авг 2012, 12:07
от Will
Заполнение поля табличной части документа из табличной части справочника.

Автор Kurt_WagnerРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 4201
Последний ответ 06 Апр 2015, 20:08
от Kurt_Wagner
Заполнение табличной части документа реквизитами табличной части справочника

Автор kaf_infoРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 638
Последний ответ 10 Май 2017, 20:44
от ilnur75
Добавление сведений в графу "основание" документа "ТОРГ-12"

Автор Ярослав1984Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 7750
Последний ответ 20 Авг 2013, 18:45
от Ярослав1984

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
157 Сообщений
ilyay ilyay
66 Сообщений
alex0402
53 Сообщений
AIFrame
47 Сообщений
andron81_81
44 Сообщений
oleg-x
44 Сообщений
BuhRust
33 Сообщений
MuI_I_Ika MuI_I_Ika
32 Сообщений
Golickoff Golickoff
31 Сообщений
Dima Dddd Dima Dddd
24 Сообщений

* Кто онлайн

  • Точка Гостей: 264
  • Точка Скрытых: 0
  • Точка Пользователей: 0

Нет пользователей онлайн.

* Облако тэгов

* Форум 1С с мобильного

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

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal