|
1с УТ Проверка даты СФ и Реализации | ☑ | ||
---|---|---|---|---|
0
Pilot_Danik
13.10.21
✎
15:58
|
Добрый день. Подскажите как сделать, чтобы при создании и проведении СФ была проверка на соответствие даты СФ и документа основания(реализации) и если они не совпадают было сообщение об этом. Предполагаю что в При записи надо добавить код, но вот какой?
|
|||
1
OldCondom
13.10.21
✎
15:59
|
На самом деле довольно простой
|
|||
2
Pilot_Danik
13.10.21
✎
16:09
|
Я даже предполагаю что там будет строк 5 всего, но я администратор а не прогер. Могу настроить формы, учет и многие другие вещи
|
|||
3
OldCondom
13.10.21
✎
16:12
|
(2) вот и настраивайте формы, а программирует пусть программист
|
|||
4
Pilot_Danik
13.10.21
✎
16:34
|
а какая должность у того кто на форумы пишет?
|
|||
5
Смотрящий
13.10.21
✎
16:37
|
От уборщицы до программиста бетонщика, директора еще бывают замечены в срачах
|
|||
6
Pilot_Danik
13.10.21
✎
16:44
|
А если у меня получится накидать эти 5 строк, тоя буду программистом выходит))
|
|||
7
Смотрящий
13.10.21
✎
16:45
|
нет. тебя еще должен укусить настоящий программист
|
|||
8
Pilot_Danik
14.10.21
✎
08:08
|
Интересно девчонки бывают настоящими программистами
|
|||
9
ДенисЧ
14.10.21
✎
08:14
|
(8) Ага. Как морские свинки...
|
|||
10
Pilot_Danik
14.10.21
✎
08:56
|
(3) Старичок, только сейчас спалил твой ник))))
|
|||
11
Saari
14.10.21
✎
09:11
|
(0) Я бы попробовал так:
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) Если НачалоДня(Дата) <> НачалоДня(ДокументОснование.Дата) Тогда Сообщить("Даты документов с/ф и документа-основания разные!"); Отказ = Истина; Возврат; КонецЕсли; КонецПроцедуры |
|||
12
Saari
14.10.21
✎
09:24
|
(8) бывают.
|
|||
13
Смотрящий
14.10.21
✎
09:26
|
(8) Они не кусают )) Не станешь программиздом )))
|
|||
14
ДенисЧ
14.10.21
✎
09:29
|
(8) Бывают. Они называются эталонными и хранятся в Парижской палате мер и весов. Под стеклянным колпаком.
|
|||
15
Saari
14.10.21
✎
09:38
|
(0) Получилось?
|
|||
16
Мультук
гуру
14.10.21
✎
09:42
|
(11)
Не смущает факт наличия в документе "СчетФактураВыданный" целой табличной части с именем "ДокументыОснования" ? |
|||
17
Pilot_Danik
14.10.21
✎
09:47
|
(15) нет. В таком виде не получилось
|
|||
18
Pilot_Danik
14.10.21
✎
09:48
|
(17) Преобразование значения к типу Дата не может быть выполнено
|
|||
19
Pilot_Danik
14.10.21
✎
09:52
|
(16) Не понятно как получить дату документа-основания Реализации товаров и услуг
|
|||
20
Saari
14.10.21
✎
09:54
|
(19) какая конфигурация?
В счет-фактуре есть реквизит "ДокументОснование"? |
|||
21
Pilot_Danik
14.10.21
✎
09:57
|
(20) УТ 11 последняя версия. Есть два реквизита со словом Основание)):
ДокументОснование СчетФактураОснование |
|||
22
Saari
14.10.21
✎
09:57
|
(18) попробуй так (в процедуре ПередЗаписью() замени условие):
Если ЗначениеЗаполнено(ДокументОснование) Тогда Если НачалоДня(Дата) <> НачалоДня(ДокументОснование.Дата) Тогда Сообщить("Даты документов с/ф и документа-основания разные!"); Отказ = Истина; Возврат; КонецЕсли; КонецЕсли; |
|||
23
Pilot_Danik
14.10.21
✎
09:59
|
(22) В модуле объекта или менеджера?
|
|||
24
Мультук
гуру
14.10.21
✎
10:01
|
(22) (23) Вас не смущает факт проверки на ЗначениеЗаполнено, когда ДокументОснование должен быть в данной ситуации просто по сути вещей?
(23) Суй везде - 1С умная сам разберется P.S. Какой пиз... скандалъ |
|||
25
Saari
14.10.21
✎
10:01
|
(23) я пробовал в модуле формы документа. Но у меня нет УТ 11, я пробовал на УТ 10.3.
|
|||
26
Saari
14.10.21
✎
10:03
|
(24) не обязательно. Если просто создать с/ф не из документа-основания, то да, выдает ошибку Преобразование значения к типу Дата не может быть выполнено
|
|||
27
Pilot_Danik
14.10.21
✎
10:06
|
Поле объекта не обнаружено (Дата)
{Документ.СчетФактураВыданный.Форма.ФормаДокумента.Форма(160)}: Если НачалоДня(Объект.Дата) <> НачалоДня(Объект.ДокументОснование.Дата) Тогда {ОбщийМодуль.ОбщегоНазначенияУТКлиент.Модуль(1472)}: Результат = Форма.Записать(ПараметрыЗаписи); {ОбщийМодуль.ОбщегоНазначенияУТКлиент.Модуль(1425)}: ЗаписатьОбъект(Форма, ПараметрыЗаписи); {Документ.СчетФактураВыданный.Форма.ФормаДокумента.Форма(533)}: ОбщегоНазначенияУТКлиент.Провести(ЭтаФорма); |
|||
28
Pilot_Danik
14.10.21
✎
10:06
|
Не может найти дату документа основания
|
|||
29
ДенисЧ
14.10.21
✎
10:07
|
А проверить на заполненность ДокументаОснования - Кришна Брахмапутра запретил?
|
|||
30
Saari
14.10.21
✎
10:08
|
(28) я же написал скорректированный код:
Если ЗначениеЗаполнено(ДокументОснование) Тогда Если НачалоДня(Дата) <> НачалоДня(ДокументОснование.Дата) Тогда Сообщить("Даты документов с/ф и документа-основания разные!"); Отказ = Истина; Возврат; КонецЕсли; КонецЕсли; |
|||
31
Pilot_Danik
14.10.21
✎
10:13
|
В данном случае вот так ругается при проверке синтаксиса
{Документ.СчетФактураВыданный.Форма.ФормаДокумента.Форма(159,24)}: Переменная не определена (ДокументОснование) Если ЗначениеЗаполнено(<<?>>ДокументОснование) Тогда (Проверка: Тонкий клиент) {Документ.СчетФактураВыданный.Форма.ФормаДокумента.Форма(160,43)}: Переменная не определена (ДокументОснование) Если НачалоДня(Дата) <> НачалоДня(<<?>>ДокументОснование.Дата) Тогда (Проверка: Тонкий клиент) {Документ.СчетФактураВыданный.Форма.ФормаДокумента.Форма(160,24)}: Переменная не определена (Дата) Если НачалоДня(<<?>>Дата) <> НачалоДня(ДокументОснование.Дата) Тогда (Проверка: Тонкий клиент) |
|||
32
ДенисЧ
14.10.21
✎
10:14
|
(31) То есть в одном месте ты берёшь НачалоДня(Объект.ДокументОснование.Дата) , а в другом просто ДокументОснование.
А потом обижаешься... |
|||
33
Saari
14.10.21
✎
10:16
|
(31) А так будет ругаться?
Если ЗначениеЗаполнено(Объект.ДокументОснование) Тогда Если НачалоДня(Объект.Дата) <> НачалоДня(Объект.ДокументОснование.Дата) Тогда Сообщить("Даты документов с/ф и документа-основания разные!"); Отказ = Истина; Возврат; КонецЕсли; КонецЕсли; |
|||
34
Pilot_Danik
14.10.21
✎
10:20
|
Синтаксических ошибок не обнаружено!
При проведении дока: Поле объекта не обнаружено (Дата) {Документ.СчетФактураВыданный.Форма.ФормаДокумента.Форма(160)}: Если НачалоДня(Объект.Дата) <> НачалоДня(Объект.ДокументОснование.Дата) Тогда {ОбщийМодуль.ОбщегоНазначенияУТКлиент.Модуль(1472)}: Результат = Форма.Записать(ПараметрыЗаписи); {ОбщийМодуль.ОбщегоНазначенияУТКлиент.Модуль(1425)}: ЗаписатьОбъект(Форма, ПараметрыЗаписи); {Документ.СчетФактураВыданный.Форма.ФормаДокумента.Форма(533)}: ОбщегоНазначенияУТКлиент.Провести(ЭтаФорма); |
|||
35
Смотрящий
14.10.21
✎
10:21
|
Объект.ДокументОснование - это не доумент
|
|||
36
Смотрящий
14.10.21
✎
10:22
|
Там скорее всего составной тип в Объект.ДокументОснование
|
|||
37
Pilot_Danik
14.10.21
✎
10:36
|
И как из это типа вытащить дату?
|
|||
38
Saari
14.10.21
✎
10:38
|
(36) в УТ 10.3 тоже составной тип. И ошибок нет.
|
|||
39
Saari
14.10.21
✎
10:50
|
(37) Сейчас проверю в конфигурации БУХ 3.
|
|||
40
Saari
14.10.21
✎
11:38
|
(37) Получилось!
Вот ответ: &НаСервере Процедура ПроверкаДат(Отказ) Если ЗначениеЗаполнено(Объект.ДокументОснование) Тогда ДокОсн = Объект.ДокументОснование; Если НачалоДня(Объект.Дата) <> НачалоДня(ДокОсн.Дата) Тогда Сообщить("Даты документов с/ф и документа-основания разные!"); Отказ = Истина; КонецЕсли; КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) ПроверкаДат(Отказ); Если Отказ Тогда Возврат; КонецЕсли; КонецПроцедуры |
|||
41
Saari
14.10.21
✎
11:39
|
(37) Проверяй.
|
|||
42
Мультук
гуру
14.10.21
✎
12:04
|
(40)
Без обид, но лучше я скажу сейчас: 1) в форме этого документа есть также событие &НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) почему бы не сделать проверку там? 2) Надеюсь, ты понимаешь, что происходит с формой и её данными при &НаСервере и чем эта кляуза отличается от &НаСервереБезКонтекста ? 3) Обрати внимание, что если в толстом клиенте за ДокОсн.Дата никто по рукам особо не бил, то в управляемых формах начали писать ДокОснДата = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДокОсн, "Дата"); P.S. Да, это счет-фактура, данных на форме особо нет и я придираюсь. Но потом, такие же вещи "по привычке" начнут писать в заказе-клиента на 100+ строк в табличной части и удивляться. Точнее удивляться будет сначала сервер, затем пользователи, затем ... |
|||
43
Pilot_Danik
14.10.21
✎
12:21
|
(40) Да, работает все отлично. Спасибо, куда поставить пиво?))) (42) Сейчас попробую по вашим поправкам сделать код. Но если не сложно обосновать второй пункт пояснить для новичков. Ну и первый кратко.
|
|||
44
Pilot_Danik
14.10.21
✎
14:42
|
(42) По первому пункту получлиось, а по третьему нет
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |