// проверка товаров ======================================НАЧАЛО // Проверка дата помещения на склад < даты ДО-1 больше чем на 1 день ====================================Подготовка общих для товаров переменных Начало Var ('iValidAccecptPeriod', integer, 1); Var ('sMessageAcceptDayStr', string, 'Дата помещения груза на склад раньше даты ДО-1 больше чем на '+ iValidAccecptPeriod + ' день'); Var ('iDODate', integer, TRUNC(convert(KRD_MAIN.BD_DATE, float))); // Если режим работы таможни не "без выходных" и дата ДО-1 понедельник, то увеличиваем период проверки IF ((STORES.CUSTOMS_BUSINESSMODE<>1) * (DAYOFWEEK(KRD_MAIN.BD_DATE)=1), Block( iValidAccecptPeriod := 3; sMessageAcceptDayStr := 'Дата помещения груза на склад раньше даты ДО-1 больше чем на '+ iValidAccecptPeriod + ' дня'; ) ); Var ('sMessageValidAcceptDayStr', string, 'позже ' + FormatDateTime('DD.MM.YYYY 00:00', iDODate - iValidAccecptPeriod)); // Проверка дата помещения на склад < даты ДО-1 больше чем на 1 день ====================================Подготовка общих для товаров переменных Конец sGroupName := 'Список товаров'; Var ('iTTNLinkError', integer, 0); IF (BOF ('KRD_COMM') = 0, FIRST ('KRD_COMM')); WHILE (EOF ('KRD_COMM') = 0, Block( // Проверка привязки накладной и, что привязанный документ принадлежит "накладным" ====================================НАЧАЛО iTTNLinkError := 0; IF ( LOCATE ('KRD_COMM_PAPERS', 'PLACEID;ID;G32;DOC_TYPE', [KRD_COMM.PLACEID, KRD_COMM.ID, KRD_COMM.G32, 13]), Block( IF ( LOCATE ('qTransportDocs', 'PLACEID;ID;COUNTER', [KRD_COMM_PAPERS.PLACEID, KRD_COMM_PAPERS.ID, KRD_COMM_PAPERS.DOC_COUNTER]),, iTTNLinkError := 1 ) ), iTTNLinkError := 1 ); IF (iTTNLinkError = 1, Block( bError := 1; AddError ( sGroupName + ': Товар #' + KRD_COMM.GN, 'Ошибка', 'Поле №ТТН', '', 'Ожидается номер накладной', sErrorsListId, 0 ); // AddError ) ); // Проверка привязки накладной и, что привязанный документ принадлежит "накладным" ====================================КОНЕЦ IF (FIELDISNULL ('KRD_COMM', 'G42') = 0, Block( IF (FIELDISNULL ('KRD_COMM', 'G42_CURRENCY'), Block( bError := 1; AddError ( sGroupName + ': Товар #' + KRD_COMM.GN, 'Предупр.', 'Стоимость: Код валюты', KRD_COMM.G42_CURRENCY, 'Буквенный код валюты', sErrorsListId, 0 ); // AddError ) ); // IF ) ); // IF // Проверка дата помещения на склад < даты ДО-1 больше чем на 1 день ====================================НАЧАЛО IF (iDODate - TRUNC(convert(KRD_COMM.ACCEPTDATE, float)) > iValidAccecptPeriod, Block( bError := 1; AddError ( sGroupName + ': Товар #' + KRD_COMM.GN, 'Предупр.', sMessageAcceptDayStr, KRD_COMM.ACCEPTDATE, sMessageValidAcceptDayStr, sErrorsListId, 0 ); // AddError ) ); // Проверка дата помещения на склад < даты ДО-1 больше чем на 1 день ====================================КОНЕЦ // Проверка названия и код доп.единиц, если заполнено количество ====================================НАЧАЛО IF ( ((KRD_COMM.G315A > 0) * (TRIM(KRD_COMM.G41A)='')), Block( bError := 1; AddError ( sGroupName + ': Товар #' + KRD_COMM.GN, 'Ошибка', 'Заполнено количество, но не заполнен код доп.единицы', 'Код:' + KRD_COMM.G41A + ' Название:' + KRD_COMM.G315, 'Код:' + VIGetCommUnit (KRD_COMM.G33) + ' Название:' + REFERENCE('UNITS', 'UNITCODE', VIGetCommUnit (KRD_COMM.G33), 'UNITNAME'), sErrorsListId, 0 ); // AddError ) ); // Проверка названия и код доп.единиц, если заполнено количество ====================================КОНЕЦ NEXT ('KRD_COMM'); ) ); // WHILE