7.7 Проверка ранее выданной ТМЦ

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Almius, 16 ноя 2007.

  1. TopicStarter Overlay
    Almius
    Offline

    Almius

    Регистрация:
    4 май 2007
    Сообщения:
    29
    Симпатии:
    0
    Баллы:
    1
    Уважаемые спецы! помогите пожалуйста решить следующую задачу.
    Есть документ "розход ТМЦ" у него есть реквизиты "Автомобиль" (спр.), "МатериалСпр"(спр.), "НомКатСпр" (спр.) связан с "МатериалСпр"
    как сделать так что бы привыдаче этому же автомобилю запчасти которая раньше выдавалось выскакивало предупреждение "эта запчасть уже выдавалась" и дата выдачи.
    Заранее Спасибо всем кто откликнулся
  2. MaxxaM
    Offline

    MaxxaM Опытный в 1С

    Регистрация:
    16 окт 2007
    Сообщения:
    288
    Симпатии:
    2
    Баллы:
    29
    Используй такую вещь как запрос только определись с периодом за какой надо просматривать :unsure: (впринципе мастер запросов справится)
  3. TopicStarter Overlay
    Almius
    Offline

    Almius

    Регистрация:
    4 май 2007
    Сообщения:
    29
    Симпатии:
    0
    Баллы:
    1
    Сделал простую обработку но мозга не хватает как сделать чтобы это работало в документе а не внешним отчетом
    Код:
    Процедура МатСправ()
    Док=СоздатьОбъект("Документ.РозходТМЦ");
    Док.ВыбратьДокументы(НачГода(РабочаяДата()),КонГода(РабочаяДата()));
    Пока Док.ПолучитьДокумент()=1  Цикл;
    Док.ВыбратьСтроки();
    Пока Док.ПолучитьСтроку()=1 Цикл 
    Если   (Авт=Док.Автомобиль) И (Мат=Док.МатериалСпр) И (Кат=Док.НомКатСпр)  Тогда;
    
    Предупреждение (" Было установлено" ""  +  Док + " Дата " +  Док. ДатаДок + " КаталогНомер " +      Док.НомКатСпр,5); 
    
    КонецЕсли;
    КонецЦикла;
    КонецЦикла;
    КонецПроцедуры
    
    Используйте тэг
    Код:
    [/color]
  4. TopicStarter Overlay
    Almius
    Offline

    Almius

    Регистрация:
    4 май 2007
    Сообщения:
    29
    Симпатии:
    0
    Баллы:
    1
    Никто не сталкивался? или я как то коряво написал? :unsure:
  5. ЧКДзержинский
    Offline

    ЧКДзержинский Опытный в 1С

    Регистрация:
    7 дек 2006
    Сообщения:
    487
    Симпатии:
    3
    Баллы:
    29
    Я не понял, ты что информацию о том, выдавалась запчасть или нет хранишь исключительно в документе? Если это так, то это есть коряво, как вариант можно использовать периодический реквизит или отдельный регистр.
    Ну а если уж лень, то перевести твой код в модуль документа - не проблема:
    Код:
    Процедура ОбработкаПроведения()
    Док=СоздатьОбъект("Документ.РозходТМЦ");
    Док.ВыбратьДокументы(НачГода(РабочаяДата()),КонГода(РабочаяДата()));
    Пока Док.ПолучитьДокумент()=1  Цикл;
    Если (Док.Проведен() = 0) ИЛИ (Док.ТекущийДокумент() = ТекущийДокумент()) Тогда 
    Продолжить;
    КонецЕсли;
    Док.ВыбратьСтроки();
    Пока Док.ПолучитьСтроку()=1 Цикл 
    Если   (Авт=Док.Автомобиль) И (Мат=Док.МатериалСпр) И (Кат=Док.НомКатСпр)  Тогда;
    //В модуле проведения не следует пользоватьсь диалоговыми окнами, 
    //поэтому вместо Предупреждение, Сообщить
    Сообщить (" Было установлено" ""  +  Док + " Дата " +  Док. ДатаДок + " КаталогНомер " +      Док.НомКатСпр,5); 
    СтатусВозврата(0);
    КонецЕсли;
    КонецЦикла;
    КонецЦикла;
    КонецПроцедуры
    
  6. TopicStarter Overlay
    Almius
    Offline

    Almius

    Регистрация:
    4 май 2007
    Сообщения:
    29
    Симпатии:
    0
    Баллы:
    1
    Информация о запчасти и ее каталожном номере хранится в проводках. Но инфы об автомобиле нет.
    Субконто1- Материалы, Субконто2-Сотрудники, Субконто3-Каталожный Номер.
    Спасибо за помощь, но меня интересует как в новом документе при выборе автомобиля, материала и каталожного номера выполнялась проверка выдавалось ли этому автомобилю выбранный материал и каталожный номер?
    Через внешний отчет все работает но как это сделать в форме документа я не знаю.
    Спасибо
  7. TopicStarter Overlay
    Almius
    Offline

    Almius

    Регистрация:
    4 май 2007
    Сообщения:
    29
    Симпатии:
    0
    Баллы:
    1
    Чего то я сильно тупил :unsure: решение простое инайдено всем спасибо
    Код:
     Процедура МатСправ()
    
    
    Док=СоздатьОбъект("Документ.РозходТМЦ");
    Док.ВыбратьДокументы(НачГода(РабочаяДата()),КонГода(РабочаяДата()));
    Пока Док.ПолучитьДокумент()=1  Цикл;
    Док.ВыбратьСтроки();
    Пока Док.ПолучитьСтроку()=1 Цикл 
    Если  (НомКатСпр.Выбран()=1) Тогда;    
    Если   (Автомобиль=Док.Автомобиль) И (МатериалСпр=Док.МатериалСпр) И (НомКатСпр=Док.НомКатСпр)  Тогда;
    Предупреждение (" Было установлено" ""  +  Док + " Дата " +  Док. ДатаДок + " КаталогНомер " +      Док.НомКатСпр,5); 
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    КонецЦикла;
    КонецПроцедуры 
    

Поделиться этой страницей