Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228

Форма документа

26.04.2013, 08:52. Показов 3314. Ответов 35
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, у меня в форме прописан такой код

1C
1
2
3
4
Процедура ПриОткрытии()
    Организация=УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ПараметрыСеанса.ТекущийПользователь,"ОсновнаяОрганизация");
    ЗначениеЗаполнено(Организация);
КонецПроцедуры
Когда пользователь входит в поле автоматом ставится его Организация, это все нормально. Но когда зашел другой пользователь с другой организацией в этот же документ и препроводит его то организация становится его, тем самым меняет организацию. Что можно сделать чтобы когда заходил другой пользователь организация оставалась не изменой
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.04.2013, 08:52
Ответы с готовыми решениями:

Форма документа
Подскажите как сделать чтоб на форме документа четез метку "текст" выводилась какая либо информация из справочника? (Например адрес...

Печатная форма документа
Помогите, пожалуйста, с такой проблемой. Есть выходные документы - Счет и Протокол. Оба формируются одним документом "Счет"....

Печатная Форма Документа
:lamer: Всем привет! Начал изучать 1с 7.7(почему именно 7.7? - потому что так хочу.)возникла проблема. Создал документ...

35
900 / 877 / 11
Регистрация: 15.03.2012
Сообщений: 2,680
26.04.2013, 08:57
1C
1
2
3
4
5
6
7
Процедура ПриОткрытии()
    
      Если ЭтоНовый() Тогда 
           Организация=УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ПараметрыСеанса.ТекущийПользователь,"ОсновнаяОрганизация");
      КонецЕсли;
 
КонецПроцедуры
1
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
26.04.2013, 11:24  [ТС]
Я сделал спасибо, а теперь я прописал еще условие

1C
1
2
3
4
5
6
7
8
9
10
11
12
Процедура ПриОткрытии()
Если ЭтоНовый() Тогда  
    Организация=УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ПараметрыСеанса.ТекущийПользователь,"ОсновнаяОрганизация");
    ЗначениеЗаполнено(Организация);
 
КонецЕсли;
 
Орг = Справочники.Организации.НайтиПоНаименованию("Рога") ; 
Если  ПараметрыСеанса.ТекущийПользователь = Орг Тогда
        ЭлементыФормы.РеквизитХраненияДоступности.Доступность = Истина;
        ЭлементыФормы.РеквизитХраненияДоступности.Видимость = Истина;
    КонецЕсли;
Почему теперь снова Организация при открытии документа отрганизация принимает значение текущего пользователя, как сделать что не изменялась?
0
900 / 877 / 11
Регистрация: 15.03.2012
Сообщений: 2,680
26.04.2013, 11:34
Цитата Сообщение от Ermak27 Посмотреть сообщение
ЗначениеЗаполнено(Организация);
Это зачем вообще?

Цитата Сообщение от Ermak27 Посмотреть сообщение
Орг = Справочники.Организации.НайтиПоНаименова нию("Рога") ;
А вы не задумывались, что если Организация "Рога", сменит название на "Рога и копыта", то Ваш код станет неработоспособным? Так делать нельзя.

Цитата Сообщение от Ermak27 Посмотреть сообщение
Если ПараметрыСеанса.ТекущийПользователь = Орг Тогда
Вы сравниваете - значения разного типа!

Цитата Сообщение от Ermak27 Посмотреть сообщение
Почему теперь снова Организация при открытии документа отрганизация принимает значение текущего пользователя, как сделать что не изменялась?
А значение какого пользователя она должна принять?
1
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
26.04.2013, 11:45  [ТС]
Значение должно оставаться пользователя который создал документ изначальна. подскажите как тогда нужно правильно сделать
0
900 / 877 / 11
Регистрация: 15.03.2012
Сообщений: 2,680
26.04.2013, 12:12
1C
1
2
3
4
5
6
7
Процедура ПриОткрытии()
    
Если ЭтоНовый() Тогда 
Организация=УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ПараметрыСеанса.ТекущийПользователь,"ОсновнаяОрганизация");
КонецЕсли;
 
КонецПроцедуры
Этот код корректен. У вас помимо него написано еще куча непонятной ерунды, но даже эта ерунда организацию не меняет, значит она меняется где то еще.
0
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
26.04.2013, 12:23  [ТС]
Не знаю где еще, но с этим кодом начинает меняться значение организации

1C
1
2
3
4
5
Орг = Справочники.Организации.НайтиПоНаименованию("Рога") ; 
Если  ПараметрыСеанса.ТекущийПользователь = Орг Тогда
        ЭлементыФормы.РеквизитХраненияДоступности.Доступность = Истина;
        ЭлементыФормы.РеквизитХраненияДоступности.Видимость = Истина;
    КонецЕсли;
а как тогда сделать условие если у текущий пользователь организация Рога тогда ЭлементыФормы.РеквизитХраненияДоступност и.Доступность = Истина;
0
900 / 877 / 11
Регистрация: 15.03.2012
Сообщений: 2,680
26.04.2013, 12:31
Цитата Сообщение от Ermak27 Посмотреть сообщение
а как тогда сделать условие если у текущий пользователь организация Рога тогда ЭлементыФормы.РеквизитХраненияДоступност и.Доступность = Истина;
Задачу опишите которую решаете.
1
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
26.04.2013, 13:50  [ТС]
Федя относится к организации "Рога" создает документ, сохраняет его, теперь если он зайдет в документ то не сможет его редактировать у него нет прав. Федя вспомнил что он совершил ошибку в сохраненном документе и хочет ее исправить, он звонит Коли (относится организации "Рога"), Коля заходил в сохраненный документ Феди и у него появляется видимость и доступность к реквизиту РеквизитХраненияДоступности (Тип булево), он делает этот реквизит истиной и проводит документ, теперь Федя может редактировать документ опять. Вот и появилась проблема, что не появляется реквизит РеквизитХраненияДоступности.
0
900 / 877 / 11
Регистрация: 15.03.2012
Сообщений: 2,680
26.04.2013, 14:37
Цитата Сообщение от Ermak27 Посмотреть сообщение
Если *ПараметрыСеанса.ТекущийПользователь = Орг Тогда
Конечно не появится. Я уже написал, Вы сравниваете Пользователя и Организацию. Условие НИКОГДА не выполняется!

По какому принципу, Вы определяете, что Коля может устанавливать эту галочку?
0
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
26.04.2013, 19:25  [ТС]
Я добавлю каждому пользователю Основная организация

Вот я делал для формы списка

1C
1
2
3
4
5
6
7
8
9
10
11
Процедура ПриОткрытии()
    
ОрганизацияПользователя = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ПараметрыСеанса.ТекущийПользователь, "ОсновнаяОрганизация");
ЭтаФорма.Отбор.Организация.Значение = ОрганизацияПользователя;
ЭтаФорма.Отбор.Организация.Использование = Истина;
Если  ОрганизацияПользователя = Справочники.Организации.НайтиПоНаименованию("Рога") Тогда
ЭлементыФормы.Список.НастройкаОтбора.Организация.Доступность = Истина;
Иначе
ЭлементыФормы.Список.НастройкаОтбора.Организация.Доступность = Ложь;
КонецЕсли; 
КонецПроцедуры
Добавлено через 1 час 2 минуты
Сделал ограничение через роль. спасибо всем за помощь.

Добавлено через 29 минут
Не могу понять как сделать ограничение, проверить если документ Форма уже существует с кварталом и подписью = истина тогда не проведет. Я сделал так но не работает

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    
    Запрос = Новый Запрос (
    "ВЫБРАТЬ
    |   Форма1.Ссылка,
    |   Форма1.Подписан
    |ИЗ
    |   Документ.Форма1 КАК Форма1
    |ГДЕ
    |   Форма1.Квартал = &Квартал
    |   И Форма1.Подписан = &Подписан");
    Запрос.УстановитьПараметр("Квартал",ЭлементыФормы.Квартал.Значение);
    Запрос.УстановитьПараметр("Подписан",ЭлементыФормы.Подписан.Значение);
    ТЗ = Запрос.Выполнить().Выбрать();
    Пока ТЗ.Следующий()Цикл
    Док=ТЗ.Ссылка.ПолучитьОбъект();
    Если ТЗ.Подписан = Истина Тогда
       Предупреждение("Документ с таким периодом уже подписан!");
     КонецЕсли;
   КонецЦикла;
    
КонецПроцедуры
Добавлено через 2 часа 54 минуты
???
0
 Аватар для Augusto
72 / 72 / 1
Регистрация: 18.12.2012
Сообщений: 390
29.04.2013, 09:13
Что есть Квартал?
0
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
29.04.2013, 09:31  [ТС]
Augusto, Это реквизит, тип имеет справочник квартал
0
 Аватар для Augusto
72 / 72 / 1
Регистрация: 18.12.2012
Сообщений: 390
29.04.2013, 09:47
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Запрос = Новый Запрос (
    "ВЫБРАТЬ
    |   Форма1.Ссылка,
    |   Форма1.Квартал,
    |   Форма1.Проведен
    |ИЗ
    |   Документ.Форма1 КАК Форма1");
 
    ТЗ = Запрос.Выполнить().Выбрать();
    Пока ТЗ.Следующий()Цикл 
    Если  ЭтотОбъект.Квартал = ТЗ.Квартал И ЭтотОбъект.Подписан = Истина И ТЗ.Проведен = Истина 
    И Не ЭтотОбъект.Ссылка = ТЗ.Ссылка Тогда
     Предупреждение("Документ с таким периодом уже подписан!");
     Отказ = Истина;
     КонецЕсли;
   КонецЦикла;
1
900 / 877 / 11
Регистрация: 15.03.2012
Сообщений: 2,680
29.04.2013, 10:19
Augusto, Вы бы хрень всякую не советовали что ли!

Добавлено через 35 секунд
Вариант Ermak27, с условием в запросе намного правильнее.
0
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
29.04.2013, 10:20  [ТС]
Не работает
0
 Аватар для Augusto
72 / 72 / 1
Регистрация: 18.12.2012
Сообщений: 390
29.04.2013, 10:20
Цитата Сообщение от Fenomen Посмотреть сообщение
Augusto, Вы бы хрень всякую не советовали что ли!
Я как бы сам делал подобным образом и все норм работало!
0
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
29.04.2013, 10:21  [ТС]
Fenomen, а как надо тогда, он почему то не видит какой док подписан
0
900 / 877 / 11
Регистрация: 15.03.2012
Сообщений: 2,680
29.04.2013, 10:22
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    
    Запрос = Новый Запрос (
    "ВЫБРАТЬ ПЕРВЫЕ 1
    |   Форма1.Ссылка
    |ИЗ
    |   Документ.Форма1 КАК Форма1
    |ГДЕ
    |   Форма1.Квартал = &Квартал
    |   И Форма1.Подписан = &Подписан");
    Запрос.УстановитьПараметр("Квартал",Квартал);
    Запрос.УстановитьПараметр("Подписан",Истина);
    Результат = Запрос.Выполнить();
 
    Если НЕ Результат.Пустой() Тогда
       Сообщить("Документ с таким периодом уже подписан!");
       Отказ = Истина;
    КонецЕсли;
 
    
КонецПроцедуры
1
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
29.04.2013, 10:28  [ТС]
Подскажите как можно прописать чтобы пользователь не мог сохранять пустой документ.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.04.2013, 10:28
Помогаю со студенческими работами здесь

Печатная форма документа
Как создать табличную часть документа, и возможно ли это вообще? (1С 7.7)

Форма списка Документа
Я заполняю документ Форма и провожу, он отобразился в форме списка, потом заполняю и провожу документ Подписан, после того как провел...

Печатная форма документа
Всем привет! Начал изучать 1с 7.7(почему именно 7.7? - потому что так хочу.)возникла проблема. Создал документ...

Криво открывается форма документа
Здравствуйте. Нужна помощь с формой документа. Она криво открывается, т.е. не растягивается на весь экран. Контрольная панель с кнопками...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru