Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: v7: редактирование поля справочника

Пользователь в форме списка редактирует поле справочника, допустим "код".
после завершения процедуры нужно провести контроль его действий, для чего необходимо знать старое (до начала редактирования) значение поля.
Позможно ли его узнать, или только заранее сохранять с дополнительное (дублирующее) поле справочника?
Ответ: сделал сохранение старого значения в "ПриНачалеРедактированияСтроки", спасибо.
Вопрос: v8: Запретить редактирование элементов справочника

Как программно запретить редактирование элементов справочника через форму элемента?
и сделать это надо из обработки

Пробовал так:

ФормаЭлементаСправочника = Справочники.МойСправочник.ПолучитьФорму("ФормаЭлемента");
ФормаЭлементаСправочника.ТолькоПросмотр = Истина;
не помогло


Заранее спасибо.
Ответ:
Для остальных основных объектов (справочники, константы, документы, регистры…), набор прав у роли достаточно стандартен:

Чтение — чтение (программное)
Добавление — добавление (программное)
Изменение — изменение (программное)
Удаление — удаление (программное)
Просмотр — просмотр
Интерактивное добавление — интерактивное добавление
Редактирование — редактирование
Интерактивная пометка удаления — интерактивная пометка на удаление
Интерактивное снятие пометки удаления — снятие пометки на удаление
Интерактивное удаление помеченных— удаление помеченных объектов
Ввод по строке — использование режима ввода по строке
Интерактивное удаление — непосредственное удаление (shift +del)

Права только для документов:

Интерактивное проведение — проведение
Отмена проведения — отмена проведения документов
Интерактивное проведение неоперативное — проведение (стандартными командами форм) документа в неоперативном режиме
Интерактивная отмена проведения — интерактивная отмена проведения
Интерактивное изменение проведенных — редактирование проведенного документа. Если право у роли не установлено, то пользователь не может проведенный документ удалить, установить пометку удаления, перепровести или сделать непроведенным. Форма такого документа открывается в режиме просмотра
Вопрос: Как реализован запрет редактирования поля в типовой УТ

привет всем, есть конфа на базе типовой УТ, и вот там при редактировании поля цена, система проверяет заполнен ли вид цены в этой строке, если не заполнен (т.е. выбран <произвольный>), то он  разрешает редактировать, иначе доступность пропадает. собственно вопрос: никак не могу понять в какой момент он запрещает к редактированию данный элемент?
Ответ: () Спасибо
Вопрос: Редактирование ТЧ справочника

Добрый день,
Хочу редактировать ТЧ справочника в форме списка не открывая форму элемента. Подскажите как, если это возможно
Ответ:
Ну это у вас в голове исправлять нельзя, мы то не знаем всей задачи.
Вопрос: Редактирование поля ввода

Здравствуйте. Встал вопрос, в добавлении произвольного текста в поле ввода.
Есть форма, на нём есть поле ввода в котором уже содержится текст попадающий из другого документа. Заказчик запросил, чтобы в этом поле так же можно было ввести произвольный текст и всё это сохранить.
Но похоже стандартными методами этого не добиться. Флаг редактирование текста не помогает. Текст редактировать становится можно, но при сохранении всё пропадает.
Может кто-то сталкивался с такой задачей? Можно ли её  решить стандартными методами или необходимо прописывать в коде, где нибудь "Перед записью"?
Заранее благодарен
Ответ: () поле формы привязано к реквизиту ФОРМЫ
Вопрос: Заполнение тч поля из справочника(заполнение ссылочного поля)

Здравствуйте!
Существует док с полем Справочник.Ссылка.Номенклатура и спрНоменклатура
вопрос состоит вот в чем создал запрос на заполнение тч документа при изменении и не могу заполнить поля наименование
Как решить данную проблему? Заранее спасибо)
Ответ:
чуть чуть измененная форма

Добавлено через 18 секунд
там поподробней
Вопрос: сохранение позиции справочника в документе

Подскажите как сделать.Есть документ с табличным полем. Реквизит табличного поля справочник. Как сделать так, чтоб при добавлении новой позиции справочник открывался на последнем выбранном элементе?
Ответ:
Посмотрите как организован подбор товаров в типовой конфе, например УТ, там форма выбора вообще не закрывается. Если же вам нужно все-таки закрывать, потом при необходимости открывать форму выбора, и позиционироваться на последней добавленной записи - то я вам уже описал что да как нужно сделать.
Как по мне, эта хотелка вообще лишняя , проще использовать ввод по строке.
Вопрос: 1C 8.3 отключение режима редактирования конфигурации

Здравствуйте.
Платформа 1С 8.3.8
Конфигурация (1С Университет ПРОФ, хотя это не важно в данном вопросе) была полностью на поддержке поставщика. Однако понадобилось внести временно некоторые изменения в один из модулей, чтобы прошло сохранение формы справочника, которая при определенных условиях сохраняться не хотела (сами разработчики предоставили код обхода условия).
Для этого было сделано следующее:
1) Настройка поддержки - "Включить возможность изменения" с режимом "Объект поставщика не редактируется"
2) У нужного справочника выбран режим "Объект поставщика не редактируется с сохранением поддержки"
3) Внесены изменения в модуль справочника
4) Всё сохранено и через режим Предприятие сохранения форма до этого вызывающая ошибку.
5) Теперь в обратном порядке код модуля справочника отредактирован как был изначально.
6) У справочника выставлен режим "Объект поставщика не редактируется".

Как теперь вернуть изначальный режим, когда возможность редактирования отключена (чтобы снова появилась кнопка "Включить возможность изменения").
Можно было бы оставить и так, но при обновлении теперь постоянно появляется окно "Сравнение и объединение конфигураций", а также автоматически не обновляется база (приходится отдельно запускать "Обновить конфигурацию базы данных"). Это не сложно, но два лишних действия всё-таки появилось.
Поиски в сети предлагали решение только через полное снятие с поддержки и загрузки конфигурации из cf с восстановлением поддержки. Очень не хочется делать снятие с поддержки.
Есть ли способ попроще и безопаснее?
Ответ:
При сравнении/объединении режим редактирования не отключается.
При загрузке конфигурации она заменяется полностью, при обновлении конфигурации БД заменяется и в ней.
Конфигурация поставщика в конфигурации БД изменяется только при загрузке конфигурации/обновлении через меню Поддержка - обновить конфигурацию с последующим обновлением конфигурации БД.
Вопрос: Разрешение редактирования контактной информации при помощи РЛС

Что-то делаю не то.
Нужно роли разрешить редактировать контактную информацию всех, кроме контрагентов. Т.е. когда в строке регистра Контактная информация объект это элемент справочника контрагенты, тогда редактировать нельзя, иначе можно.
В РЛС для роли на ограничениях для Изменение написал: "КонтактнаяИнформация ГДЕ НЕ (КонтактнаяИнформация.Объект ССЫЛКА Справочник.Контрагенты)"
И никакого эффекта. Свободно редактируется вся контактная информация.
Проверил, никакие другие роли редактирование пользователя не разрешают.
Ответ:
А про "или" я знаю.

Ну как... Прошелся по всем ролям которые пользователю назначены и убедился, что во всех ролях Изменение галочка не стоит. Стоит только в той, которую собственно и правлю. В ней же стоит и редактирование, но там РЛС не назначается.
Редактирование - открываю строку контактных данных, вношу изменение и записываю.

Ещё варианты есть? Или уже утро вечера мудренее....
Вопрос: Работа с полем со списком

Здравствуйте! Мне нужно выбрать значение поля со списком, которое берется со справочника. И по нему уже фильтровать справочник. Вот только задать значения не выходит...
Код 1C
1
2
3
4
5
6
7
8
  Процедура ПриОткрытии()  
    Факультеты = СоздатьОбъект("Справочник.Факультет");
Факультеты.ВыбратьЭлементы();  
Пока Факультеты.ПолучитьЭлемент() = 1 Цикл      
    Сообщить(Ttt.ТекущийЭлемент().Наименование);
    
конеццикла;
КонецПроцедуры
Выводит ошибку:
Попытка присвоить значение недоступной для записи переменной (Факультеты)
Подскажите как быть тогда?
Ответ: Реализовала иначе с помощью поля ввода. и ему уже дала значения справочника) всем спасибо большое)
Выборку сделала, если кому понадобится:
Код 1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
Процедура Сформировать()
    Перем Запрос, ТекстЗапроса, Таб;
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = 
    "//{{ЗАПРОС(Печать)
 
    |Факультет1 = Справочник.Проживающие.Факультет;
    |Проживающий = Справочник.Проживающие.Наименование;
    |Группа = Справочник.Проживающие.НомГруппы;
    |НомерКомнаты = Справочник.Проживающие.НомерКомнаты;
    |Функция Сч = Счётчик();
    |Группировка Факультет1;
    |Группировка Проживающий;";
        Если Факультет.Выбран()=1 Тогда   ТекстЗапроса=ТекстЗапроса+"  
        
    |Условие(Факультет = Факультет1);
    |"//}}ЗАПРОС 
    ;         //    сообщить("заппаптап");
        КонецЕсли;
     
    
    Сообщить(Факультет);    
        
        
        
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда  
        сообщить("запрос вообще не прошел");
        Возврат;
    КонецЕсли;    
        ТабЗнач=СоздатьОбъект("ТаблицаЗначений");   //* Показать результат запроса
    Запрос.Выгрузить(ТабЗнач,0,0);              //* ставилось на время отладки
    Парам=ТабЗнач; ОткрытьФорму("Отчет.Диагностика",ТабЗнач);// Возврат;
 
    Спр=СоздатьОбъект("Справочник.Факультет");
    Спр1=СоздатьОбъект("Справочник.Проживающие");
    // Подготовка к заполнению выходных форм данными запроса
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Таблица");
    // Заполнение полей "Заголовок"
    Таб.ВывестиСекцию("Заголовок");
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0); 
    Себ=0; Приб=0;
    Пока Запрос.Группировка("Факультет1") = 1 Цикл
        Спр.НайтиПоНаименованию(Запрос.ЗначениеУпорядочивания(1),0);
              Таб.ВывестиСекцию("Факультет");   
    
             Себ1=0; Приб1=0;
        Пока Запрос.Группировка(2) = 1 Цикл  
        
        Спр1.НайтиПоНаименованию(Запрос.ЗначениеУпорядочивания(1),0);
        // Если Запрос.Проживающий.ЭтоГруппа()=0 тогда     Таб.ВывестиСекцию("Проживающий");
         //иначе Таб.ВывестиСекцию("группа");    
         // конецесли;
//Если Запрос.Медикамент.ЭтоГруппа()=0 тогда     
    Таб.ВывестиСекцию("Проживающий");
 
//КонецЕсли;
КонецЦикла; 
 
    КонецЦикла;
 
    Таб.ВывестиСекцию("Итого");
 
    Таб.ТолькоПросмотр(0); 
        Таб.ПараметрыСтраницы(1,100,,3,3,3,3,1,1,,,);
    Таб.Показать("Печать", "");
КонецПроцедуры