8.х Обход строк табличного поля справочника

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем smallangel, 16 май 2008.

  1. TopicStarter Overlay
    smallangel
    Offline

    smallangel

    Регистрация:
    6 авг 2007
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    вообщем у меня такая проблемы есть 2 справочника: НормативыСмазочныхРабот и справочник ТочкиСмазки, Справочник ТочкиСмазки подчинен справочнику Основные средства
    Посмотреть вложение 917
    Форма элемента имеет следующий вид:
    Посмотреть вложение 918
    Каждому основному средству соответствуют свои точки смазки...
    я не могу сделать так, чтобы при активизации строки табличного поля с ОС-ми, в табличном поле точек смазки отображались только те точки, которые принадлежат данному ос.

    Вложения:

    • 1.JPG
      1.JPG
      Размер файла:
      27,7 КБ
      Просмотров:
      110
    • 2.JPG
      2.JPG
      Размер файла:
      55,7 КБ
      Просмотров:
      114
  2. TopicStarter Overlay
    smallangel
    Offline

    smallangel

    Регистрация:
    6 авг 2007
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    Процедура ТабличноеПолеОСПриАктивизацииСтроки(Элемент)
    ТекДСтрокаОС=ЭлементыФормы.ТабличноеПолеОС.ТекущиеДанные;
    ТекСтрокаТЧ=ЭлементыФормы.ТПНаборТочекСмазки.ТекущаяСтрока;
    Для Каждого ТекСтрокаТЧ Из НаборТочекСмазки Цикл
    Если ТекСтрокаТЧ.НазваниеТочки.Владелец <>ТекДСтрокаОС.ОсновноеСредство Тогда
    // не знаю, что как строки не выводить, которые не надо
    КонецЕсли;
    КонецЦикла;
    КонецПроцедуры

    /// я тут пыталась сделать, но что-то до меня не доходит как... я понимаю, что нужно обход сделать строк табличной части и проверить владельца точки смазки и, если владелец точки равен выбранному текущему основному средству, то делаем строку видимой...

    /// вот немного переделала код
  3. AlexFF
    Offline

    AlexFF Разбирающийся

    Регистрация:
    6 мар 2007
    Сообщения:
    565
    Симпатии:
    1
    Баллы:
    26
    Я бы переделал справочник "НормативыСмазочныхРабот". Почему там ОС живет в отдельной табличной части? Сделайте его реквизитом справочника и станет все проще. Теже точки сможете просто по владельцу отбирать.
    Помоему, сугубо личному, мнению элемент справочника нормативы должен описывать одно ОС а не набор.
  4. TopicStarter Overlay
    smallangel
    Offline

    smallangel

    Регистрация:
    6 авг 2007
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    да я тоже об этом думала...
    просто в УПП есть справочник "Нормативы обслуживания ОС" там нормативы вводятся на несколько ОС сразу... я сделала по аналогии - только еще точки добавила

    просто у Табличного поля нельзя сделать видимыми отдельные строки...
  5. AlexFF
    Offline

    AlexFF Разбирающийся

    Регистрация:
    6 мар 2007
    Сообщения:
    565
    Симпатии:
    1
    Баллы:
    26
    Ну тогда переносите все реквизиты из ТЧ "набор точек" в справочник точекисмазки" а тч вообще убирайте. оставте только тч "ОС" а в форме элемента справочника "Нормативы" сделайте табличное после с данными из справочника "точкисмазки" отбор в котоый будет по владельцу из Тч "ОС"

    вроде понятно написал :)
  6. TopicStarter Overlay
    smallangel
    Offline

    smallangel

    Регистрация:
    6 авг 2007
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    я поняла .... просто тут такая логическая вещь... что вот эти параметры
    периодичность обслуживания, количество периодов, параметров выработки и время...
    это именно те параметры, которые задаются нормативом в справочнике Нормативы справочных работ.... просто нормативы на точку могут со временем меняться
  7. AlexFF
    Offline

    AlexFF Разбирающийся

    Регистрация:
    6 мар 2007
    Сообщения:
    565
    Симпатии:
    1
    Баллы:
    26
    Тогда как вариант заведите документ "ИзменениеНормативныхСмазочныхРабот" и регистр сведений "ИсторияИзмененийНормативныхСмазочныхРабот". Документом изменяйте или устанавливайте реквизиты справочника "ТочкиСмазки" при проведении документа изменения записывайте в регистр. Тогда и история будет и менять параметры обслуживания удобно. А сам справочник "ТочкиСмазки" для пользователя только на просмотр.
  8. TopicStarter Overlay
    smallangel
    Offline

    smallangel

    Регистрация:
    6 авг 2007
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    Для Каждого ТекСтрокаТЧ Из НаборТочекСмазки Цикл
    Если ТекСтрокаТЧ.НазваниеТочки.Владелец =ТекДСтрокаОС.ОсновноеСредство Тогда
    ЭлементыФормы.ТПНаборТочекСмазки.ЦветФона=WEBЦвета.ЗеленаяЛужайка;
    // Сообщить("Зеленый");
    КонецЕсли;

    У меня работает этот цикл(сообщение "Зеленый" выводится тогда, когда нужно :unsure: ), только фон тех строк, которые принадлежат данному ОС, не становится Зеленым...
    в справке написано, что "ОформлениеСтроки" используется при событии ПриВыводеСтроки...
    B) и я уже не знаю... как сделать...
  9. TopicStarter Overlay
    smallangel
    Offline

    smallangel

    Регистрация:
    6 авг 2007
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    Получается такая модель:
    ТочкиСмазки-справочник
    Наименование
    ПериодичностьОбслуживания
    КоличествоПериодов
    ПараметрВыработки
    Значение
    Кол-во.... а кол-во определяет кол-во для точки Услуги(СправочникНоменклатура) в НормативыСмазочныхРабот
    Все равно нужна табличная часть для ввода кол-ва на точку в НормативыСмазочныхРабот

    Идея с документом хорошая... но просто вот эти нормативы потом используются для Заказа на обслуживание ОС, было бы удобнее обойтись справочником...
  10. AlexFF
    Offline

    AlexFF Разбирающийся

    Регистрация:
    6 мар 2007
    Сообщения:
    565
    Симпатии:
    1
    Баллы:
    26
    Вообще-то сделайте отбор по владельцу и других строк там просто не должно быть.
    Зачем весь справочник показывать?

    Ну а вообще вот пример:
    Код:
     
    Процедура ПриПолученииДанных(Элемент, ОформленияСтрок)
    Для каждого СТР из ОформленияСтрок Цикл
    Если СТР.ДанныеСтроки.Обеспечен Тогда
    СТР.ЦветФона=WebЦвета.СветлоЗеленый;
    КонецЕсли;
    КонецЦикла;
    КонецПроцедуры
    
    
  11. AlexFF
    Offline

    AlexFF Разбирающийся

    Регистрация:
    6 мар 2007
    Сообщения:
    565
    Симпатии:
    1
    Баллы:
    26
    Не понял про количество?
    Изначально количества нигде не фигуруровало (судя по скриншотам).
    Так мы документом правим ТочкиСмазки
    А для заказа на обслуживание Вы используете НормативыРабот.

    И еще можнто тогда полностью озвучить задачу от начала до конца?
    Если что можно в личку.
  12. TopicStarter Overlay
    smallangel
    Offline

    smallangel

    Регистрация:
    6 авг 2007
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    Вообщем, постараюсь объяснить:

    Справочник ТочкиСмазки имеет подчинен справочнику ОсновныеСредства.
    Реквизиты(предопределенные - код и наименование(обозначение точки)):
    -Название;
    -ВладелецОС;
    Справочник НормативыСмазочныхРабот имеет следующие реквизиты:
    - комментарий(Строка);
    - услуга(СправочникСсылка.Номенклатура);
    - состояние (ПеречислениеСсылка.СостоянияОбъектов);
    - ДатаУтверждения(дата);
    Табличные части:
    1. ОС - реквизит ОсновноеСредство(СправочникСсылка.ОсновноеСредство);
    2. НаборТочекСмазки
    - НазваниеТочкиСмазки(СправочникСсылка.ТочкиСмазки);
    - ПериодичностьОбслуживания(ПеречислениеСсылка.Периодичность);
    - КоличествоПериодов(Число);
    - ПараметрВыработки(СправочникСсылка.ПараметрыВыработкиОС);
    - ЗначениеПараметраВыработки(Число);
    - ВремяВыполненияОперации(Число). - вот это количество услуги

    На самом деле услуга - т.е. в данном случае смазка в справочнике Номенклатура должна иметь единицу измерения в часах.
    Т.е. для каждой точки определено время услуги... сколько ее будет выполнять смазчик.
    Поэтому не целесообразно все эти реквизиты перекидывать в справочник ТочкиСмазки.
    Так как это характеристики не точки смазки, а услуги по смазке данной точке.

    я просто не знаю на самом деле как проще сделать...

    т.е. нормативом мы задаем точкам ос параметры услуги-смазки
  13. TopicStarter Overlay
    smallangel
    Offline

    smallangel

    Регистрация:
    6 авг 2007
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    А сама задача - это планирование смазочных работ для оборудования - смазка осуществляется по определенным точкам, согласно схемам, которые прилагаются к оборудованию.
  14. TopicStarter Overlay
    smallangel
    Offline

    smallangel

    Регистрация:
    6 авг 2007
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    Вообщем я сделала - по одному ос... вроде пока нормально...
  15. AlexFF
    Offline

    AlexFF Разбирающийся

    Регистрация:
    6 мар 2007
    Сообщения:
    565
    Симпатии:
    1
    Баллы:
    26
    В типовом решении (НормативыОбслуживанияОС) для разных ОС может быть установлен один и тот же норматив.
    В вашем же случае (если я правильно понял) для разных точек смазки одного и того же ОС, может быть установлен свой собственный норматив.
    Так что стандартное решение не совсем подходит. Нормативы задавайте для точек. Ссылка на ОС в справочнике НормативыСмазочныхРабот по идее вообще не нужна.
    Ваш вариант: ОС -> Нобор ТочекСмазки -> Нормативы смазки для каждой точки. Типовой ОС -> НормативыОбслуживания
    Связку ОС -> Точки уже делать или документом или обработкой и хранить в регистре. И по нему же планировать обслуживание.

    Вот так не сильно вникая и совсем Вас запутав :)
  16. TopicStarter Overlay
    smallangel
    Offline

    smallangel

    Регистрация:
    6 авг 2007
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    да вы верно меня поняли... в принципе, я сделала как вы и говорите... в итоге у меня получился следующий вид справочника НормативыСмазочныхРабот...
    В нем Нормативы задаются для точек одного ОС...
    Посмотреть вложение 925

    Но все-таки думаю привязка к ОС должна быть ... так как при планировании смазочных работ для точек одного ОС нужно учитывать дату ввода в эксплуатацию ОС...если, например, ОС новое и ранее не обслуживалось...

    Моя мысль такая...
    НормативыСмазочныхРабот: ОС+его точки с нормативами;
    На основании этого спр-ка формирую Заказ на обслуживание ОС - меняю его вид;
    и Задание на производство
    Причем и заказ на обслуживание и задание на производство буду формировать автоматически обработкой

    Вложения:

    • 99999.JPG
      99999.JPG
      Размер файла:
      52,4 КБ
      Просмотров:
      72
  17. AlexFF
    Offline

    AlexFF Разбирающийся

    Регистрация:
    6 мар 2007
    Сообщения:
    565
    Симпатии:
    1
    Баллы:
    26
    Ну как вариант, тоже имеет права на жизнь :)
    Удачи.
  18. TopicStarter Overlay
    smallangel
    Offline

    smallangel

    Регистрация:
    6 авг 2007
    Сообщения:
    24
    Симпатии:
    0
    Баллы:
    1
    AlexFF, спасибо !!!!!

    Я вот начала делать и запуталась с заданием на производство... :unsure:

    В УПП есть обработка "Формирование заказов на обслуживание"
    Там формируются заказы на обслуживание ОС и задания на производство...

    Задания на производство заполняются, как задания на выпуск
    Посмотреть вложение 932
    и как на тех процесс
    Посмотреть вложение 933

    Обработка формирует задания на производство как задания на выпуск
    и я вот не могу понять: могут ли смазочные работы рассматриваться ,как задания на тех процесс?

    и как можно, например, сделать так чтобы невыполненные пункты из задания на производство переносились на следующий день?

    Вложения:

  19. AlexFF
    Offline

    AlexFF Разбирающийся

    Регистрация:
    6 мар 2007
    Сообщения:
    565
    Симпатии:
    1
    Баллы:
    26
    У меня дома нет УПП
    в понедельник доберусь до работы - посмотрю.
  20. AlexFF
    Offline

    AlexFF Разбирающийся

    Регистрация:
    6 мар 2007
    Сообщения:
    565
    Симпатии:
    1
    Баллы:
    26
    Если честно, то обработку так и не посмотрел.
    Необходимо же вроде было Обслуживание ОС, почему тогда Вас потянуло в сторону заданий на производство?
    По опыту мне проще написать свою, чем ковыряться уже в существующей. (хотя и не всегда :) )
    По существу вопроса это должно выглядить как-то так:
    Берем из справочника данные о нармативах, через сколько должно производиться обслуживание. Берем данные о последнем обслуживании (этот вопрос кстати пока насколько я понимаю не отработан кто и где хранит эти данные?). Находим разницу дат. Если пора формируем задание на обслуживаение, причем опять же нам необходимо проконтролировать было ли выполнено это обслуживание и если нет (это где-то надо хранить) и начался новый трудовой день (смена) то сформировать новый документ на обслуживание.

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