• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Как Запретить Проведение Документа?

  • Автор темы chelseadrogba
  • Дата начала
C

chelseadrogba

Есть Документ ВводНачальныхОстатков, который позволяет вносить нач. остатки в регистр накопления вручную. Есть также документ КассовыйЧек. Необходимо запретить проведение документа КассовыйЧек, если дата проведения его раньше даты документа ВВодНачальныхОстатков. Надеюсь поняли, что я имею ввиду..
 
A

Allexei

Используйте подписку на событие. Объек - ваш чек, событие Обработка проведения
 
C

chelseadrogba

а с кодом не посоветуете как быть?
 
A

Allexei

Как то так
Код:
Процедура ПодпискаНаСобытие1ОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт
Если Источник.Дата< "Здесь ваша дата" Тогда
Отказ = Истина;
КонецЕсли;

КонецПроцедуры
 
C

chelseadrogba

я бы отправил сюда то, что сам написал, но думаю, что вы будете смеяться
 
A

Allexei

Попытки разобраться в задаче самостоятельно не могут быть смешными. Смешно когда просят за просто так сделать что то серьезное при этом ни приложив со своей стороны усилий. Выкладывайте, покритикуем.
 
C

chelseadrogba

Хорошо сказано. Источником у меня является Документ КассовыйЧек, а как получить дату Документа ВводНачальныхОстатков? Запросом?
 
A

Allexei

Да.Выбираете запросом 1 дату документа с условием сортировки даты по возрастанию.
 
C

chelseadrogba

я только как недели две начал изучать программирование на 1с
 
C

chelseadrogba

Процедура КассовоеПроведениеОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт
Если РежимПроведения = РежимПроведенияДокумента.Оперативный Тогда
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ВводНачальныхОстатков.Дата
|ИЗ
| Документ.ВводНачальныхОстатков КАК ВводНачальныхОстатков
|
|УПОРЯДОЧИТЬ ПО
| Дата";
//Запрос.УстановитьПараметр("Дата", Дата);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();

Если Источник.Дата < Тогда
Сообщение = Новый СообщениеПользователю();
Сообщение.Текст = "Нельзя проводить";
Сообщение.Сообщить();
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры

ВСе равно с датой проблемы у меня, не знаю как быть.
 
U

unknown181538

Если Выборка.Следующий() Тогда
Если Источник.Дата <Выборка.Дата Тогда
Сообщение = Новый СообщениеПользователю();
Сообщение.Текст = "Нельзя проводить";
Сообщение.Сообщить();
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
КонецЕсли;

Только уточните, с каким из документов надо сравнивать? Документа ввода остатков разными датами введены или он один вообще?


Кстати, если конфигурация типовая, рекоменюую обратить внимание на процедуру ОбщегоНазначенияКлиентСервер.СообщитьПользователю()
 
C

chelseadrogba

вроде как один

Добавлено: мне нужно, если запись в документе ВводНачальныхОстатков, например, 8.08.2012, тогда проводить документ КассовыйЧек раньше чем 8 число нельзя, а позже можно, хоть на секунду позже
 
C

chelseadrogba

вроде получилось так как я хотел, спасибо большое за совет. Очень выручили.
 
C

chelseadrogba

не подскажете? как получить последнюю запись из регистра? запросом или же как - нибудь по другому?

Добавлено: Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
| <записи регистра>
|ИЗ
| <из регистра накопления>
|УПОРЯДОЧИТЬ ПО
| Период УБЫВ";

также можно? как думаете?
 
C

chelseadrogba

а какой источник посоветуете для изучения программирования на 1С?
 
C

chelseadrogba

а не подскажете? У меня в регистре накопления содержится измерение Касса, мне необходимо для соответствующей кассы получить последнюю запись? как это будет выглядеть? вложенный запрос или как?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!