Дата документа должна быть не позже 2020 года
У диспетчера стоит старая конфигурация "Бухгалтерия 3.0" (3.0.44.199) . Работает как машинка для печати накладных. Там есть много самописных доработок. Со своими функциями конфигурация справляется отлично и что-то с ней делать очень не хочется. Но сейчас столкнулись с проблемой. Программа не хочет создавать документы в 2021 году. Так и пишет: "Дата документа должна быть не позже 2020 года". Кто-нибудь знает в каком месте сидит эта проверка, чтоб ее отключить или изменить дату. Самому найти не получается.
Конфигурация давно не на поддержке, так что можно менять все.
Конфигурация давно не на поддержке, так что можно менять все.
По теме из базы знаний
- Как сдать экзамен 1С:Специалист по платформе?
- Проблемные ситуации при переходе на ФСБУ 6/2020
- Инструкция "Переход на ФСБУ 6 не с начала года в 1С: ЕРП"
- Проблема производительности. Как может заблокировать работу в ERP один-единственный документ от 01.01.2099 года?
- Автоматизация процесса разработки с помощью сервиса GitFlic
Найденные решения
Закомментировать
ОбщийМодуль.ОбщегоНазначенияБПСобытия
и будет Вам счастье.
ОбщийМодуль.ОбщегоНазначенияБПСобытия
Процедура ПроверитьКорректностьДатыПередЗаписью
//ИначеЕсли Источник[КонтролируемыйРеквизит] > КорректныйПериод.КонецКорректногоПериода Тогда
// ГраницаКорректности = Формат(КорректныйПериод.КонецКорректногоПериода, "ДФ=гггг");
// ШаблонОшибки = НСтр("ru = '%1 документа должна быть не позже %2 года'");
// ЕстьОшибкиВКонтролируемыхРеквизитах = Истина;
и будет Вам счастье.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)Или сделать как в свежих типовых
Функция КорректныйПериодВводаДокументов() Экспорт
// Контролируем ошибку на один разряд. Например, 0017 вместо 2017; 2071 вместо 2017.
// Допустимым считаем ввод документов на 9 лет в будущем. Например, в 2020 году разрешаем
// вводить даты в интервале с января 2000 по декабрь 2029.
КонецКорректногоПериода = ДобавитьМесяц(КонецГода(ТекущаяДатаСеанса()), 9 * 12);
КорректныйПериод = Новый Структура;
КорректныйПериод.Вставить("НачалоКорректногоПериода", Дата(2000, 01, 01));
КорректныйПериод.Вставить("КонецКорректногоПериода", КонецКорректногоПериода);
Возврат КорректныйПериод;
КонецФункции
Показать
Закомментировать
ОбщийМодуль.ОбщегоНазначенияБПСобытия
и будет Вам счастье.
ОбщийМодуль.ОбщегоНазначенияБПСобытия
Процедура ПроверитьКорректностьДатыПередЗаписью
//ИначеЕсли Источник[КонтролируемыйРеквизит] > КорректныйПериод.КонецКорректногоПериода Тогда
// ГраницаКорректности = Формат(КорректныйПериод.КонецКорректногоПериода, "ДФ=гггг");
// ШаблонОшибки = НСтр("ru = '%1 документа должна быть не позже %2 года'");
// ЕстьОшибкиВКонтролируемыхРеквизитах = Истина;
и будет Вам счастье.
(11)
Вроде расписал Сервер73.
Запустить конфигуратор, в меню Правка-Глобальный поиск вбить слова поиска: Процедура ПроверитьКорректностьДатыПередЗаписью
Потом в процедуре найти упомянутый текст После ИнчеЕсли и поставить слева от него //
для закомментирования во всех строчках что выше.
Затем, разумеется Конфигурация-сохранить конф, Конфигурация-Обновить конф БД
распиши , если не сложно .
Вроде расписал Сервер73.
Запустить конфигуратор, в меню Правка-Глобальный поиск вбить слова поиска: Процедура ПроверитьКорректностьДатыПередЗаписью
Потом в процедуре найти упомянутый текст После ИнчеЕсли и поставить слева от него //
для закомментирования во всех строчках что выше.
Затем, разумеется Конфигурация-сохранить конф, Конфигурация-Обновить конф БД
(12) Что бы я без Вас делал? )) Спасибо огромное )
Какое то время пришлось потратить, чтобы расшифровать "птичий язык", но результат есть )). Ура.
В очередной раз подтверждается истина, когда кажется, что что-то плохо.. надо чтобы стало еще хуже, например 1с перестала проводить документы, а потом вернуть все как было раньше.. и будешь счастлив )
Какое то время пришлось потратить, чтобы расшифровать "птичий язык", но результат есть )). Ура.
В очередной раз подтверждается истина, когда кажется, что что-то плохо.. надо чтобы стало еще хуже, например 1с перестала проводить документы, а потом вернуть все как было раньше.. и будешь счастлив )
СПАСИБО! Всю ночь ковырялся по удалёнке... (версия у меня корпоративная не всё так просто..) Голова как ЧУГУН ))))
Всё получилось!!!!!
Дай Вам Боженька доброго здоровья!!!
А сегодня рабочий день... Пипец.. Народ идёт... Ещё раз СПАСИБО !!!!
Всё получилось!!!!!
Дай Вам Боженька доброго здоровья!!!
А сегодня рабочий день... Пипец.. Народ идёт... Ещё раз СПАСИБО !!!!
(23)
Процедура ПроверитьКорректностьДатыПередЗаписью
//ИначеЕсли Источник[КонтролируемыйРеквизит] > КорректныйПериод.КонецКорректногоПериода Тогда
// ГраницаКорректности = Формат(КорректныйПериод.КонецКорректногоПериода, "ДФ=гггг");
// ШаблонОшибки = НСтр("ru = '%1 документа должна быть не позже %2 года'");
// ЕстьОшибкиВКонтролируемыхРеквизитах = Истина;
где скобку пропустили ?
Процедура ПроверитьКорректностьДатыПередЗаписью
//ИначеЕсли Источник[КонтролируемыйРеквизит] > КорректныйПериод.КонецКорректногоПериода Тогда
// ГраницаКорректности = Формат(КорректныйПериод.КонецКорректногоПериода, "ДФ=гггг");
// ШаблонОшибки = НСтр("ru = '%1 документа должна быть не позже %2 года'");
// ЕстьОшибкиВКонтролируемыхРеквизитах = Истина;
где скобку пропустили ?
Копирую весь текст сверху, вставляю и перед закрытием уже выдает ошибку:
ОбщийМодуль.ОбщегоНазначенияБПСобытия.Модуль(104,48)}: Ожидается символ '('
Процедура ПроверитьКорректностьДатыПередЗаписью<<?>> (Проверка: Сервер)
ОбщийМодуль.ОбщегоНазначенияБПСобытия.Модуль(104,48)}: Ожидается символ '('
Процедура ПроверитьКорректностьДатыПередЗаписью<<?>> (Проверка: Сервер)
корректнее в старых конфах править вот эту процедуру в том же модуле. где 2020 заменить на 2030 к примеру.
а предыдущий код просто вставлять - не верно, так как синтаксис ломается
Функция КорректныйПериодВводаДокументов() Экспорт
КорректныйПериод = Новый Структура;
КорректныйПериод.Вставить("НачалоКорректногоПериода", Дата(2000, 01, 01));
КорректныйПериод.Вставить("КонецКорректногоПериода", Дата(2020, 12, 31, 23, 59, 59)); /// <<< ---------- тут 2030
Возврат КорректныйПериод;
КонецФункции
а предыдущий код просто вставлять - не верно, так как синтаксис ломается
(28) Спасибо тебе, добрый человек! Это и надо было сделать с самого начала, просто поменять цифру. Теперь проблема , правда, в другом. Процедура (ПроверитьКорректностьДатыПередЗаписью - вот здесь код не верный. Вышли пожалуйста, свой . корректный
Добрый день!
1с 8.3, такая же проблема, дата не должна быть позже 2020 года. Глобальный поиск не находит в конфиге указанные строчки для замены или комментирования. Подскажите пожалуйста, что еще можно сделать, какие есть варианты? Заранее благодарю!
1с 8.3, такая же проблема, дата не должна быть позже 2020 года. Глобальный поиск не находит в конфиге указанные строчки для замены или комментирования. Подскажите пожалуйста, что еще можно сделать, какие есть варианты? Заранее благодарю!
Господа, хелп. Скрин прилагаю. ПроверитьКорректностьДатыПередЗаписью - тупо удалил все записи и поставил из данного поста. На что 1с естественно ругается. Стандартный (который был ранее) вернуть не могу. Может кто-нибудь скопировать у себя и вставить здесь? Что бы я мог перенести к себе. Буду безмерно благодарен. Выдает вот такую ошибку (как на скрине)
Прикрепленные файлы:
(47)
Предлагаю полный текст функции:
Предлагаю полный текст функции:
Процедура ПроверитьКорректностьДатыПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
Если Источник.ОбменДанными.Загрузка
Или ПроведениеСервер.ГрупповоеПерепроведение(Источник) Тогда
Возврат;
КонецЕсли;
МетаданныеДокумента = Источник.Метаданные();
КорректныйПериод = КорректныйПериодВводаДокументов();
ЕстьОшибкиВКонтролируемыхРеквизитах = Ложь;
// Проверим корректность даты, задающей период движений документа.
КонтролируемыеРеквизиты = КонтролируемыеРеквизитыТипаДата(МетаданныеДокумента);
Для каждого КонтролируемыйРеквизит Из КонтролируемыеРеквизиты Цикл
Если Источник[КонтролируемыйРеквизит] < КорректныйПериод.НачалоКорректногоПериода Тогда
ГраницаКорректности = Формат(КорректныйПериод.НачалоКорректногоПериода, "ДФ=гггг");
ШаблонОшибки = НСтр("ru = '%1 документа должна быть не ранее %2 года'");
ЕстьОшибкиВКонтролируемыхРеквизитах = Истина;
ИначеЕсли Источник[КонтролируемыйРеквизит] > КорректныйПериод.КонецКорректногоПериода Тогда
ГраницаКорректности = Формат(КорректныйПериод.КонецКорректногоПериода, "ДФ=гггг");
ШаблонОшибки = НСтр("ru = '%1 документа должна быть не позже %2 года'");
ЕстьОшибкиВКонтролируемыхРеквизитах = Истина;
КонецЕсли;
Если ЕстьОшибкиВКонтролируемыхРеквизитах Тогда
Прервать;
КонецЕсли;
КонецЦикла;
Если Не ЕстьОшибкиВКонтролируемыхРеквизитах Тогда
// Некорректных дат не найдено.
Возврат;
КонецЕсли;
// Сообщаем о некорректном документе.
Если КонтролируемыйРеквизит = "Дата" Тогда // пытаемся вывести сообщение в форме рядом с датой
ОписаниеОшибки = СтрШаблон(ШаблонОшибки, НСтр("ru = 'Дата'"), ГраницаКорректности);
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ОписаниеОшибки, Источник, "Дата", , Отказ);
Иначе // выводит сообщение только в панели сообщений формы объекта
ОписаниеОшибки = СтрШаблон(ШаблонОшибки, НСтр("ru = 'Дата движений'"), ГраницаКорректности);
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ОписаниеОшибки, Источник, , , Отказ);
КонецЕсли;
ЗаписьЖурналаРегистрации(
НСтр("ru = 'Даты запрета изменения.Некорректный год'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка,
Источник.Метаданные(),
Источник.Ссылка,
ОписаниеОшибки,
РежимТранзакцииЗаписиЖурналаРегистрации.Транзакционная);
КонецПроцедуры
ПоказатьЕсли Источник.ОбменДанными.Загрузка
Или ПроведениеСервер.ГрупповоеПерепроведение(Источник) Тогда
Возврат;
КонецЕсли;
МетаданныеДокумента = Источник.Метаданные();
КорректныйПериод = КорректныйПериодВводаДокументов();
ЕстьОшибкиВКонтролируемыхРеквизитах = Ложь;
// Проверим корректность даты, задающей период движений документа.
КонтролируемыеРеквизиты = КонтролируемыеРеквизитыТипаДата(МетаданныеДокумента);
Для каждого КонтролируемыйРеквизит Из КонтролируемыеРеквизиты Цикл
Если Источник[КонтролируемыйРеквизит] < КорректныйПериод.НачалоКорректногоПериода Тогда
ГраницаКорректности = Формат(КорректныйПериод.НачалоКорректногоПериода, "ДФ=гггг");
ШаблонОшибки = НСтр("ru = '%1 документа должна быть не ранее %2 года'");
ЕстьОшибкиВКонтролируемыхРеквизитах = Истина;
ИначеЕсли Источник[КонтролируемыйРеквизит] > КорректныйПериод.КонецКорректногоПериода Тогда
ГраницаКорректности = Формат(КорректныйПериод.КонецКорректногоПериода, "ДФ=гггг");
ШаблонОшибки = НСтр("ru = '%1 документа должна быть не позже %2 года'");
ЕстьОшибкиВКонтролируемыхРеквизитах = Истина;
КонецЕсли;
Если ЕстьОшибкиВКонтролируемыхРеквизитах Тогда
Прервать;
КонецЕсли;
КонецЦикла;
Если Не ЕстьОшибкиВКонтролируемыхРеквизитах Тогда
// Некорректных дат не найдено.
Возврат;
КонецЕсли;
// Сообщаем о некорректном документе.
Если КонтролируемыйРеквизит = "Дата" Тогда // пытаемся вывести сообщение в форме рядом с датой
ОписаниеОшибки = СтрШаблон(ШаблонОшибки, НСтр("ru = 'Дата'"), ГраницаКорректности);
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ОписаниеОшибки, Источник, "Дата", , Отказ);
Иначе // выводит сообщение только в панели сообщений формы объекта
ОписаниеОшибки = СтрШаблон(ШаблонОшибки, НСтр("ru = 'Дата движений'"), ГраницаКорректности);
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ОписаниеОшибки, Источник, , , Отказ);
КонецЕсли;
ЗаписьЖурналаРегистрации(
НСтр("ru = 'Даты запрета изменения.Некорректный год'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка,
Источник.Метаданные(),
Источник.Ссылка,
ОписаниеОшибки,
РежимТранзакцииЗаписиЖурналаРегистрации.Транзакционная);
КонецПроцедуры
(47)
Ну голову то применять надо. Человек в упрощенном виде показал что нужно закомментить (закомментить и удалить это почти одно и тоже, просто закомментированные потом проще восстановить убрав "//"). А Вы сделали точную копию и удалили всю процедуру вместе с объявлением о конце процедуры.
Ничего удалять и исправлять не нужно! Просто находите строчки перед которыми klom поставил "//" и ставите перед ними "//". Все!
Ну голову то применять надо. Человек в упрощенном виде показал что нужно закомментить (закомментить и удалить это почти одно и тоже, просто закомментированные потом проще восстановить убрав "//"). А Вы сделали точную копию и удалили всю процедуру вместе с объявлением о конце процедуры.
Ничего удалять и исправлять не нужно! Просто находите строчки перед которыми klom поставил "//" и ставите перед ними "//". Все!
(58) для базовой одно решение - обновляться. Если базовая, значит изменений нет, и обновления пройдут в автоматическом режиме. Я в итоге обновлял до 3.0.74, это последняя версия, которая работает на платформе 8.3.12.1685. Но думаю, можно было и раньше остановиться.
Если ПРОФ, то модуль должен быть доступен.
Если ПРОФ, то модуль должен быть доступен.
(59)в общем нашёл я всё
Для тех кто не может найти делаем так:
нажимаем - Правка/Глобальный поиск
далее откроется окошко, в нём есть три вкладки
1) типы текстов (я поставил везде галочки)
2) конфигурация (я поставил галочку на "основная конфигурация" и на "конфигурация базы данных")
3) файлы (не трогаем вообще)
в поиск забиваем слова - "КорректныйПериодВводаДокументов"
в найденном я выбрал файл .
Основная конфигурация ОбщийМодуль.ОбщегоНазначенияБПСобытия.Модуль(64, 9) : Функция КорректныйПериодВводаДокументов() Экспорт
в нём нашёл крестик перед словом ""Функция", нажать на него в открывшемся списке изменить 2020 год на 2030 например. Потом нажимаю "файл" потом нажимаю сохранить, потом конфигурация/обновить конфигурацию
Если у вас запрещено редактирование, то погуглите как отключить поддержку, после отмены поддержки заново запустите поиск и найденные файлы можно будет редактировать.
Для тех кто не может найти делаем так:
нажимаем - Правка/Глобальный поиск
далее откроется окошко, в нём есть три вкладки
1) типы текстов (я поставил везде галочки)
2) конфигурация (я поставил галочку на "основная конфигурация" и на "конфигурация базы данных")
3) файлы (не трогаем вообще)
в поиск забиваем слова - "КорректныйПериодВводаДокументов"
в найденном я выбрал файл .
Основная конфигурация ОбщийМодуль.ОбщегоНазначенияБПСобытия.Модуль(64, 9) : Функция КорректныйПериодВводаДокументов() Экспорт
в нём нашёл крестик перед словом ""Функция", нажать на него в открывшемся списке изменить 2020 год на 2030 например. Потом нажимаю "файл" потом нажимаю сохранить, потом конфигурация/обновить конфигурацию
Если у вас запрещено редактирование, то погуглите как отключить поддержку, после отмены поддержки заново запустите поиск и найденные файлы можно будет редактировать.
(86)Имя устройства *********************
Процессор Intel® Core i5-2400 CPU * 3.10GHz 3.10 GHz
Оперативная память 16,0 ГБ
Код устройства **************************
Код продукта *********************
Тип системы 64-разрядная операционная система, процессор x64
-----------------------
можете сообщить ?
Процессор Intel® Core i5-2400 CPU * 3.10GHz 3.10 GHz
Оперативная память 16,0 ГБ
Код устройства **************************
Код продукта *********************
Тип системы 64-разрядная операционная система, процессор x64
-----------------------
можете сообщить ?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот