Это моя первая публикация, прошу сильно не пинать.
Так как база большая и она SQL, то писался прямой запрос требуется компонента (1cpp.dll), который бы проверял просроченные документы. Для начала добавил в полномочия пользователя проверку можно ли ему превышать кредит. (рис. Права пользователя)
Далее написал прямой запрос и вставил его в функцию КонтрольКредитаПройден при выборе контрагента происходит проверка и выводится просроченный долг (рис. Проверка на просрочку) код прикреплен в файле.
При попытке провести просроченный документ он блокируется (рис 2)
По полномочиям проведение документов разрешили начальникам отделов, что бы те были в курсе, кто числится в должниках и спрашивали с менеджеров. Менеджеры конечно не довольны, но зато контроль просроченных долгов стал более жесткий.
Тестировалась в течении 1,5 недели на реальной базе все просрочки сходились.
Автору уважение за такой вот подход, идея правильная, т.к не у всех пользователей есть доступ на просмотр долга контрагента.
Не в тему: Хотя есть еще одно предложение, при проведении документов (реализацияТМЦ, ПеремещениеТМЦ)проверять отпускные цены, чтобы не получилось когда отпускная цена меньше или равна закупочной..
Спасибо.
(1) Иваныч, При проведении цены пересчитываются согласно цене установленной в карточке контрагента, и его скидкам на определенные группы номенклатурных позиции. Если цену поставили руками, она не имеет смысла при проведении все равно пересчитается.
(2)
Согласен, только у меня несколько раз было не обновлена Закупочная, а к ней привязана оптовая в % выражении, и как факт, если изменение цены несущественно, закроешь глаза, а когда разница велика, тогда ой-ой-ой…
Реально нужная вещь!
А ПОЧЕМУ РУГАЕТСЯ??????????
RS_Взаим<<?>>.УстановитьТекстовыйПараметр(«ДатаНач», MDW.GetDateTimeIDDOC(СформироватьПозициюДокумента(ПолучитьПозицию(),1)));
{Документ.Реализация.Модуль Документа(95)}: Переменная не определена (RS_Взаим)
RS_Взаим<<?>>.УстановитьТекстовыйПараметр(«Фирма», Фирма);
{Документ.Реализация.Модуль Документа(96)}: Переменная не определена (RS_Взаим)
RS_Взаим<<?>>.УстановитьТекстовыйПараметр(«Договор», Договор);
{Документ.Реализация.Модуль Документа(97)}: Переменная не определена (RS_Взаим)
Если RS_Взаим<<?>>.Prepare(Запрос)=0 Тогда
{Документ.Реализация.Модуль Документа(115)}: Переменная не определена (RS_Взаим)
глНеПроводить(Контекст,RS_Взаим<<?>>.GetLastError());
{Документ.Реализация.Модуль Документа(116)}: Переменная не определена (RS_Взаим)
глНеПроводить(Контекст,RS_Взаим.GetLastError()<<?>>);
{Документ.Реализация.Модуль Документа(116)}: Неопознанный оператор
RS_Взаим<<?>>.Open();
{Документ.Реализация.Модуль Документа(120)}: Переменная не определена (RS_Взаим)
RS_Взаим<<?>>.GetResultsInVT(ТИ, 1);
{Документ.Реализация.Модуль Документа(122)}: Переменная не определена (RS_Взаим)
Вых=Выходные<<?>>(ТИ.КредДокумент.ДатаДок,ДатаМ);
{Документ.Реализация.Модуль Документа(129)}: Функция не обнаружена (Выходные)
RS_Взаим<<?>>.Close();
{Документ.Реализация.Модуль Документа(143)}: Переменная не определена (RS_Взаим)
<<?>>Иначе
{Документ.Реализация.Модуль Документа(144)}: Ожидается ключевое слово ‘КонецФункции’ (‘EndFunction’)
<<?>>Иначе
{Документ.Реализация.Модуль Документа(144)}: Ожидается ключевое слово ‘КонецФункции’ (‘EndFunction’)
ТекущийДолг1 = ВремПокупатели.СводныйОстаток(Фирма,Договор,,,,»СуммаВал»);<<?>>
{Документ.Реализация.Модуль Документа(146)}: Обнаружено логическое завершение исходного текста модуля
(5) vitn, а версия конфигурации какая?
(6) Sanario, В шапке написано 1с 7.7 комплекс
куда вставить формулу ?))
Формула вставляется в документ реализация. При приведении происходит проверка.