8.х Помогите идеей по структуре.

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

  1. TopicStarter Overlay
    BeasT
    Offline

    BeasT

    Регистрация:
    8 авг 2012
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Народ, помогите пожалуйста советом, как мне реализовать в 1С выполнение моей задачи. Я просто не совсем понимаю как это сделать т.к только начинаю изучать 1С.​

    У меня есть следующая задача: Нужно сделать небольшую программу которая смогла бы отслеживать процесс выполнения заказа.​
    Заказ имеет несколько стадий: Открытый, Обработка, Производство, Упаковка, Отправлено. Все эти заказы заполняются разными людьми.​
    Открытый – создание заказа это делает допустим директор.​
    Обработка – заполняется отделом обработки заказов.​
    Производство – заполняется начальником производства​
    Упаковка и Отправка – занимается отдал упаковки.​

    Необходимо сделать следующие: Дать отделам возможность по очереди заполнять заказы . : Открытый -> Обработка -> Производство -> Упаковка​
    При этом дать возможность директору отслеживать продвижения заказов, на какой стадии они находятся.​

    У меня есть две мысли на этот счет но не знаю как можно правильно решить эту задачу.​
    Идея 1. Создать Несколько справочников допустим (Заказы, Обработка, Производство, Упаковка) что бы соблюсти последовательность то назначить справочникам владельцев. Заказы (главный) у справочника Обработка (владелец Заказы) и тд. У каждого справочника свои формы заполнения. Ну есть вопросы как транслировать данные со справочника родителя ниже и на оборот если в нижнем меняется статус то что бы он изменился и в главном справочнике. ​
    Идея 2. Создать один справочник с кучей полей. И сделать одну форму с несколькими вкладками. На верху допустим формы отображается общая информация а во вкладках отображается информация относящаяся к участкам.​
    Но как разграничить справочник для разных сотрудников. Что бы производство не увидело заказ раньше чем он прошел обработку.​

    Итоговый отчет примерно такой как в таблице, таблица прикреплена.​



    Помогите плиз советом. Большое спасибо!​

    Вложения:

  2. TopicStarter Overlay
    BeasT
    Offline

    BeasT

    Регистрация:
    8 авг 2012
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Упс. Забыл прикрепить саму таблицу.

    Вложения:

  3. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    можно и 1 док с закладками, а можно Вводом на основании делать. Права разграничить по ролям можно. Последовательность тоже в принципе заложить в программу можно с помощью ввода на основании (основанием то будет определенный документ). В форме списка для определенных групп пользователей настроить видимость документов, чтоб предотвтратить изменение последовательности создания документов.

    З.Ы. ну это так на вскидку
  4. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Да, правильно подсказали, можно делать вводом на основании, причем запретить создавать документ интерактивно (Самый "верхний" документ - разрешено вводить интерактивно, далее по цепочке - только на основании "предыдущего", причем это нужно делать с проверкой, на соответствие с порядком в цепи, например, Уровень 1(открытый) -> Уровень 2(обработка) -> Уровень 3(производство) и т.д.
  5. TopicStarter Overlay
    BeasT
    Offline

    BeasT

    Регистрация:
    8 авг 2012
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Спасибо большое за советы. Так и попробую реализовать не могли бы помочь с выборкой.

    Есть справочник в котором есть поля Код| Наименование| и несколько столбцов с булевыми полями для разграничение выбора компонентов.

    Мне необходимо в сделать так, что бы в справочнике отображались лишь те элементы которые удовлетворяют запросу. Сделал запрос он выбирает то что нужно! но как только эти записи оставить видимыми в выбраном справочнике.

    Вот Код:
    Код:
    &НаКлиенте
    Процедура СтатусЗаказаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)   
    ВыборкаПравДиректора();   
    КонецПроцедуры
    &НаСервере
    Процедура ВыборкаПравДиректора()
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |   СтатусыЗаказов.Наименование,
    |   СтатусыЗаказов.Код
    |ИЗ
    |   Справочник.СтатусыЗаказов КАК СтатусыЗаказов
    |ГДЕ
    |   СтатусыЗаказов.РазрешениеДляДиректора = Истина
    |
    |УПОРЯДОЧИТЬ ПО
    |   СтатусыЗаказов.Код";
    Запрос.Выполнить().Выбрать();
    
    КонецПроцедуры
    
    и ещё маленький вопрос. Если с помощью выборки я получаю одно конкретное значение, то как его можно отобразить в элементе (с Видом : поле записи)
  6. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    не совсем вопрос понятен. Поясните, что при каких условиях делается, например: есть форма, на ней таблчное поле СправочникСписок, в нем надо ограничить видимость строк в зависимости от того, какой пользователь открыл форму. Так? Если да, то посмотрите в сторону отбора.
  7. TopicStarter Overlay
    BeasT
    Offline

    BeasT

    Регистрация:
    8 авг 2012
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Есть форма в справочника, на форме есть реквизит (Тип: ссылка на другой справочник(что бы поле заполнялось с помощью выбора)). справочник на который ссылается имеет данные которые я описал выше.

    Код | Наименование | РазрешениеДляДиректора | РазрешениеДляСборщика
    _1_ |_Создан______ |_________ ^____________ |______________________
    _2_ |_Собран______ |_______________________|___________^___________

    Потом я делаю так что бы каждый мог видеть только те данные(в конкретном случае статусы заказа) которые предназначены для него. Что бы не мог поставить что нибудь другое.

    Я выборкой хотел отбросить лишние значения..

    А по поводу второго вопроса. Я просто получил выборкой конкретное значение пытаюсь и хочу его вывести в элемент (с Видом : поле записи) . Пытался вывести в сообщение вот код
    Код:
    &НаКлиенте
    Процедура ПриОткрытии(Отказ)
    УстановитьТекущуюДату (Объект.Дата);
    ЗапроситьТипИзделия ();
    //  ПолучениеДанныхОИзделии (ЭтаФорма.ВладелецФормы,Объект);
    КонецПроцедуры
    &НаСервере
    Процедура УстановитьТекущуюДату(Дата)
    Если Дата = '00010101000000' Тогда
    Дата=ТекущаяДата();	//Установка текущей даты в поле создание. При создании заказа.
    Объект.Наименование = Дата;
    //	Сообщить (Объект.Наименование);
    Иначе
    Возврат
    КонецЕсли;
    
    КонецПроцедуры
    &НаСервере
    //Запрос типа изделия у формы владельца
    Процедура ЗапроситьТипИзделия()
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |   ОбработкаЗаказов.Владелец.ТипИзделия
    |ИЗ
    |   Справочник.ОбработкаЗаказов КАК ОбработкаЗаказов";[/font][/color]
    [color=#282828][font=helvetica]	Результат = Запрос.Выполнить();
    Значение = Результат.Выгрузить();
    Объект.ТипИзделия=Значение;
    Сообщить (Объект.ТипИзделия);
    
    КонецПроцедуры
    

    А он мне в места значения выбает : ТаблицаЗначеий

    Хотя там одно значение всего.
  8. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    1. ну на сервере насколько я знаю конструкция
    Код:
     Сообщить (Объект.Наименование);
    не прокатит (весь интерфейс на клиенте)

    2. вот эта конструкция всегда на выходе даст ТаблицуЗначений
    Код:
    Значение = Результат.Выгрузить();
    Попробуйте вот так
    Код:
    //Объект.ТипИзделия=Значение;
    Объект.ТипИзделия = Значение[0].ТипИзделия;
    З.Ы. посмотрите описание используемых функций в Синтаксис-помошнике (СП)
  9. TopicStarter Overlay
    BeasT
    Offline

    BeasT

    Регистрация:
    8 авг 2012
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    В конструкции
    Код:
    //Объект.ТипИзделия=Значение;
    Объект.ТипИзделия = Значение[0].ТипИзделия;
    Ругался на тип значения но получить смог следующим путем:

    Код:
    Объект.ТипИзделия = Значение[0][0];
    Так заработало (ОГРОМНОЕ СПАСИБО).

    А с первым Вопросом так и не понял. Как сделать что бы в справочнике остались только те значения, в которых одно из полей (наименование которого я указываю при поиске) содержит значение ИСТИНА.
  10. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    у меня была такая ситуация: по изменению определенного значения, изменялась видимость строк в ТабПоле. Вот так было организовано

    Код:
    ЭлементыФормы.ТП2.ОтборСтрок.Реквизит1.Значение = Значение1;
    ЭлементыФормы.ТП2.ОтборСтрок.Реквизит1.ВидСравнения = ВидСравнения.Равно;
    ЭлементыФормы.ТП2.ОтборСтрок.Реквизит1.Использование = Истина;
    
    Попробуйте адаптировать
  11. x_under
    Offline

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Возвращаясь к начальной задаче: я бы сделал бизнес процессом. Было бы большее поле для дальнейшего развития. Можно было бы и задачи пользователям прикрутить, и графические схемы сделать. И воронку обработки.

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