Вход | Регистрация
 

Предоставление пользователю доступа на редактирование строки ЗаказаКлиента

Предоставление пользователю доступа на редактирование строки ЗаказаКлиента
Я
   TolstiyBeremenniy
 
31.07.20 - 05:58
УТ 11.2.3.95. Менеджер создает ЗаказКлиента. Добавляет туда 2 строки. А одной строке в действиях отгрузить, в другой к обеспечению.
Затем, другой пользователь с более полными правами, на основании этого заказа создает реализацию. В реализацию, попадает 1 строка, у которой в действии было отгрузить.
После менеджеру требуется изменить данные в заказе, в строке у которой в действии стоит у обеспечению. Но уже заказ, на основании которого создана реализация, редактировать нельзя.

Подскажите пожалуйста, как сделать, что бы менеджер, в заказе клиента, на основании которого создан документ реализация товаров услуг, мог редактировать данные в строке в действиях которой указано к обеспечению?
   Злопчинский
 
1 - 31.07.20 - 07:33
разбей на два заказа. в одном - все к обеспечению, в другом - все к отгрузке.
   TolstiyBeremenniy
 
2 - 31.07.20 - 12:45
(1) Задачу поставил пользователь. Вбивает в документ все подряд. Может такая особенность?
Вот только то что не к отгрузке, потом необходимо править.

Можно ли вообще такое делать? Там как я понял, весь документ же, на основе которого создана реализация, переведен в режим только чтение.

Можно ли одну строку давать редактировать, другую нет?

Этот пример, был создан, специально, что бы выявить вот эту проблему. Спрошу могут ли они так работать. А если нет, как тогда это можно сделать?
   lodger
 
3 - 31.07.20 - 13:17
@Можно ли одну строку давать редактировать, другую нет@

можно. можно даже управлять это по колонкам. например, цены зафиксированы, а количество можешь тыркать.
   TolstiyBeremenniy
 
4 - 31.07.20 - 16:52
(3) Подскажите пожалуйста какими средствами это можно делать?
А то я подумал, что установка только чтение на весь документ или нет.
Как то с подобным не сталкивался, по этому не совсем все ясно.
Подскажите пожалуйста, как это можно попробовать делать?

Необходимо сделать в зависимости от выбранного значения, действия. Редактировать строку или нет.
   ZDenis
 
5 - 31.07.20 - 16:58
(4) можно условие в "ПередНачаломИзменения" ТЧ впихнуть и там где нельзя редактировать Возврат.
Не проверял, но должно работать
   TolstiyBeremenniy
 
6 - 31.07.20 - 17:09
(5) То есть что бы пользователь, даже не мог ничего поменять, не то что сохранить?
Сейчас там при открытии заказа, он как замороженный. Ничего не меняется вообще.
Как это отменить сейчас? Что бы задавать пробовать новую настройку?
   TolstiyBeremenniy
 
7 - 31.07.20 - 17:11
(5) То есть один из вариантов, разрешения редактирования строки, или запрет на её редактирование, использование метода ПередНачаломИзменения.
Строки, или табличной части пока плохо себе представляю. Какие ещё возможны варианты?
Как вообще накладывается запрет на изменение всего документа? После как на его основании создали другой документ.
   lodger
 
8 - 31.07.20 - 17:24
(6) "как замороженный" - это простая блокировка Толькочтение на весь документ.
(4) чтобы реализовать кастомный подход придётся выключить блокировку всего документа.
а потом открыть Форму в конфигураторе, в свойствах Формы - "Условное оформление".
там найдется мини-СКД с блоком условий и накладываемым эффектом.
например
[оформление ТолькоПросмотр
условие заказано=отгружено
область ТаблицаТовары]
в результате не отгруженные строки будут доступны к редактированию.
   TolstiyBeremenniy
 
9 - 31.07.20 - 18:10
(8)  То есть подход только такой?
А как в (5) советовали? ПередНачаломИзменения, отлавливать значение действия в строке, и позволять редактировать или нет?

Ясно, буду искать как отключить только чтение на весь документ.

И нужно будет разобраться с условным оформлением.
   TolstiyBeremenniy
 
10 - 03.08.20 - 04:43
Подскажите пожалуйста, как будет правильнее сделать. У формы документа ЗаказКлиента, я в условном оформлении устанавливаю такое условие
Объект.Товары.ВариантОбеспечения Равно "Перечисление.ВариантыОбеспечения.Отгрузить"

http://joxi.ru/bmoyBOni9JjRPA

Как что бы это условие работало на строку документа. Что если значение ВариантОбеспечения отгрузить. То нельзя редактировать строку. Иначе можно.

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

Где снимать свойство только чтение на всю форму документа, что работает сейчас? Видимо это делается программно, при создании реализации на основании заказа?
   hhhh
 
11 - 03.08.20 - 05:43
(10) не надо там ничего редактировать, чего вы чудите? там есть специальная отгрузить сверху. или установить действие
   TolstiyBeremenniy
 
12 - 03.08.20 - 06:04
(11) О чем вы пишете? Скажите пожалуйста, а то ничего не понял (.
   TolstiyBeremenniy
 
13 - 03.08.20 - 06:29
Я сделал так http://joxi.ru/eAO854GCpBZ4Yr
Что если Объект.Товары.ВариантОбеспечения Не равно "Перечисление.ВариантыОбеспечения.Отгрузить", то доступность для поля ТоварыКоличествоУпаковок .
Но это не работает. Я не знаю как правильно сделать.

Подскажите пожалуйста.

Общая формулировка такая. На основании ЗаказаКлиента создают реализацию. После, под менеджером становится не доступно изменять ЗаказКлиента.
Ему нужно менять данные в строках ЗаказаКлиента в которых в поле ВариантОбеспечения (Действия) стоит значение отличное от отгрузить.

Как это правильно можно сделать через условное оформление ? Менять нужно разрешить только данные строк где вариант обеспечения (действие) содержит значение отличное от отгрузить .
   hhhh
 
14 - 03.08.20 - 06:38
(13) нельзя менять строки, если уже были документы по заказу. будет бардак в базе
   TolstiyBeremenniy
 
15 - 03.08.20 - 06:52
(14) Задача поставлена, если в поле вариант обеспечения стоит значение отличное от отгрузить, то менеджеру нужно дать доступ на изменение, там что то меняют
нельзя менять где стоит отгрузить
а так он заходит под другим пользователем и меняет, нужно что бы работало под ним
вопрос как это сделать?!
   TolstiyBeremenniy
 
16 - 05.08.20 - 06:46
Подскажите пожалуйста, если документу ЗаказКлиента при открытии задается вот это свойство ЭтаФорма.ТолькоПросмотр=Истина;
То можно ли после сделать доступной для редактирования строку в документе? В табличной части товары. Или нужно вообще убирать это свойство?
   ДенисЧ
 
17 - 05.08.20 - 06:50
(16) Нет. Если форма.ТолькоПРосмотр - остальное изменить нельзя.
   TolstiyBeremenniy
 
18 - 05.08.20 - 07:00
(17) Ясно. Спасибо! То есть, сначала нужно поставить это свойство в Ложь.

ЭтаФорма.ТолькоПросмотр = Ложь;

Подскажите пожалуйста, как лучше и правильнее дальше сделать. Нужно Определенной строке, строкам.
В которых действие отличное от "Отгрузить", предоставить доступ для редактирования.

В (8) подсказали, что делать это нужно через условное оформление.
Сейчас пытаюсь понять как это сделать, что бы в документе были доступными для редактирования только строки у которых действие не равно "Отгрузить".

А остальное было бы только чтение. Пытаюсь понять какой набор условий правильно задать.
   TolstiyBeremenniy
 
19 - 05.08.20 - 08:34
Подскажите пожалуйста. К%ак правильнее будет сделать? Не работал ранее с условным оформлением.

Нужно что бы в документе был достп только на строки у которых действие <> Отгружено .
   TolstiyBeremenniy
 
20 - 05.08.20 - 08:58
почему это не работает? http://joxi.ru/KAx0g5NU1aOeDA

все доступно для редактирования, как нужно правильно ?
   TolstiyBeremenniy
 
21 - 05.08.20 - 09:07
Не работает условное оформление http://joxi.ru/DrlxEORH0lBXzr

Что я не так делаю? Как нужно?
   ZDenis
 
22 - 05.08.20 - 09:11
(21) Тебе в полях (3 колонка) надо укзаать "колонки" табличной части. А так ты пытаешься всю ТЧ на просмотр сделать. У тебя ведь не все строки должны быть недоступны
   TolstiyBeremenniy
 
23 - 05.08.20 - 09:12
(22) Ок, оформляемые поля то есть нужно задать
   TolstiyBeremenniy
 
24 - 05.08.20 - 09:21
накидал что то http://joxi.ru/4AkXZOaHXzawnr

должно сработать? как увидеть что работает?
   TolstiyBeremenniy
 
25 - 05.08.20 - 09:25
(22) не работает! можно редактировать все что угодно
   ZDenis
 
26 - 05.08.20 - 09:28
(25) должно работать, может программно где-то очищается оформление?
   TolstiyBeremenniy
 
27 - 05.08.20 - 09:30
(26) В типовом механизме

&НаСервере
Процедура УстановитьУсловноеОформление()

    УсловноеОформление.Элементы.Очистить();


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    УстановитьУсловноеОформление();


Тогда программно это нужно создавать?
А как это по коду будет? Что бы хоть попробовать?!!!
   TolstiyBeremenniy
 
28 - 05.08.20 - 09:37
Подскажите пожалуйста, как сделать аналог программно, этой настройки?

http://joxi.ru/Y2L18qBCQB40pA
   ZDenis
 
29 - 05.08.20 - 09:51
(27) Что-то типо так
Элемент = Список.УсловноеОформление.Элементы.Добавить();

ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.Товары.Цена);
//тут все перечислить

    
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ВариантОбеспечения");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ВариантыОбеспечения.Отгрузить;
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
   TolstiyBeremenniy
 
30 - 05.08.20 - 10:03
(29) То есть данный пример должен блокировать ячейку цена в табличной части товары?

А как правильно?

    ПолеЭлемента.Поле             = Новый ПолеКомпоновкиДанных(Элементы.ТоварыЦена);
    ПолеЭлемента.Поле             = Новый ПолеКомпоновкиДанных(Элементы.Товары.Цена);

?
 
 Рекламное место пустует
   ZDenis
 
31 - 05.08.20 - 10:07
(30) Скорее даже вот так
ПолеЭлемента.Поле             = Новый ПолеКомпоновкиДанных(Элементы.ТоварыЦена.Имя);

Давно не делал, не помню точно
   TolstiyBeremenniy
 
32 - 05.08.20 - 10:20
(31) Хочу попробовать сейчас такой код, в конце процедуры условное оформление , типового механизма

    Элемент                      = УсловноеОформление.Элементы.Добавить();
    ПолеЭлемента                  = Элемент.Поля.Элементы.Добавить();
    ПолеЭлемента.Поле              = Новый ПолеКомпоновкиДанных(Элементы.ТоварыВариантОбеспечения.Имя);
    //

    ОтборЭлемента                = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ОтборЭлемента.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("Объект.Товары.ВариантОбеспечения");
    ОтборЭлемента.ВидСравнения   = ВидСравненияКомпоновкиДанных.Равно;
    ОтборЭлемента.ПравоеЗначение = Перечисления.ВариантыОбеспечения.Отгрузить;
    Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);    



как думаете, рабочий ли код?
   TolstiyBeremenniy
 
33 - 05.08.20 - 10:23
подскажите почему не работает (32) ?
   ZDenis
 
34 - 05.08.20 - 10:29
(33) Тут только вариант обеспечения он не может менять и это не работает, когда там значение "Отгрузить"?
   TolstiyBeremenniy
 
35 - 05.08.20 - 10:31
(34) Дя я пробую сделать пример, что бы понять как работает.
В коде (32) если в строке в варианте обеспечения отгрузить, то поле вариант обеспечения должно быть не доступно для редактирования.
Но оно доступно для редактирования.
   TolstiyBeremenniy
 
36 - 05.08.20 - 10:50
Вот, так смотрю. Поле Цена в табличной части Товары заблокировано, где в варианте обеспечения стоит отгрузхить.

    Элемент                      = УсловноеОформление.Элементы.Добавить();
    ПолеЭлемента                  = Элемент.Поля.Элементы.Добавить();
    ПолеЭлемента.Поле              = Новый ПолеКомпоновкиДанных(Элементы.ТоварыЦена.Имя);
    //

    ОтборЭлемента                = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ОтборЭлемента.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("Объект.Товары.ВариантОбеспечения");
    ОтборЭлемента.ВидСравнения   = ВидСравненияКомпоновкиДанных.Равно;
    ОтборЭлемента.ПравоеЗначение = Перечисления.ВариантыОбеспечения.Отгрузить;
    Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);    


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

Почему (32) тогда не работало?
   TolstiyBeremenniy
 
37 - 05.08.20 - 11:17
Подскажите как правильно задавать только чтение для нескольких полей строки программно ?
   ZDenis
 
38 - 05.08.20 - 11:24
(37) я же писал
    Элемент                      = УсловноеОформление.Элементы.Добавить();

    ПолеЭлемента                  = Элемент.Поля.Элементы.Добавить();
    ПолеЭлемента.Поле              = Новый ПолеКомпоновкиДанных(Элементы.ТоварыЦена.Имя);
    ПолеЭлемента                  = Элемент.Поля.Элементы.Добавить();
    ПолеЭлемента.Поле              = Новый ПолеКомпоновкиДанных(Элементы.ТоварыКоличество.Имя);

    // и т.д.


    ОтборЭлемента                = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    .....
   TolstiyBeremenniy
 
39 - 05.08.20 - 11:30
(38) Спасибо! Извините если не внимателен. Да я пробую сейчас так настраивать.

Один вопрос. Сейчас мне нужно это делать для каждого элемента формы?

Спасибо. Разбираюсь.
   TolstiyBeremenniy
 
40 - 05.08.20 - 12:40
Почему я не могу закрыть редактирование поля на форме.? Что я не так делаю? Это уже на странице формы, реквизит шапки документа.

    ЭлементыФормы                  = УсловноеОформление.Элементы.Добавить();
    //

    ПолеЭлемента                  = ЭлементыФормы.Поля.Элементы.Добавить();
    ПолеЭлемента.Поле              = Новый ПолеКомпоновкиДанных(Элементы.Статус.Имя);
    //

    ЭлементыФормы.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);    


В режиме предприятия он доступен для редактирования. Я их хочу все позакрывать, так как только чтение с формы сейчас снято .


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.