Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/163: Рейтинг темы: голосов - 163, средняя оценка - 4.58
160 / 159 / 13
Регистрация: 14.01.2010
Сообщений: 1,497
1

Нельзя изменить поле, содержащее данные формы. Почему?

17.01.2013, 12:44. Показов 32517. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет
Почему 1й код не работает, пишет
{Документ.дктГилевТабЧасть.Форма.ФормаДокумента.Форма(76)}: Ошибка при установке значения атрибута контекста (Объект): Нельзя изменять поле, содержащее объект данных формы
с(Объект);
по причине:
Нельзя изменять поле, содержащее объект данных формы
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
&НаКлиенте
Процедура ПечатьТЧ(Команда)
    с(Объект);
КонецПроцедуры
 
&НаСервере
функция С(о)
    тч = О.тчМатериалы;   
    Для каждого стр Из тч Цикл
 
        сообщить(стр.ркМатериал);
    
    КонецЦикла;
    
КонецФункции
а 2й код работает
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
&НаКлиенте
Процедура ПечатьТЧ(Команда)
    с();
КонецПроцедуры
 
&НаСервере
функция С()
    тч = Объект.тчМатериалы; 
    Для каждого стр Из тч Цикл
 
        сообщить(стр.ркМатериал);
    
    КонецЦикла;
    
КонецФункции
8.2
Модуль формы
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.01.2013, 12:44
Ответы с готовыми решениями:

Как с JS или jQuery изменить цвет одного символа в поле формы(в поле находится некоторый текст)
Как с JS или jQuery изменить цвет одного символа в поле формы(в поле находится некоторый текст)

Получить данные в поле текстбокса автоматом и перенести данные с формы на лист
Добрый день. Имеется таблица -реестр. Заполняется через форму. В поле текстбокса вводится номер...

Почему в ListBox нельзя просто, как и в TextBox загрузить данные из базы данных?
Я занимаюсь программированием больше года, хотя и не профессионально, но постоянно, однако, к...

Access иногда не сохранят данные с формы в БД (Данные>Источник строк ).почему?
Здравсвуйте! Вот такая проблема.... На главное форме в Access расположены вкладки, через которые...

12
858 / 657 / 111
Регистрация: 01.11.2012
Сообщений: 2,411
17.01.2013, 13:37 2
Ну в 1-м примере бессмысленно передавать Объект, ибо он итак доступен в контексте модуля формы, я думаю первый пример заработает. если написать

функция С(Знач о)

А если так заработает, то, имхо, передача Объекта по ссылке в другую процедуру или функцию считается в 1С как попытка изменения.

Добавлено через 5 минут
Да еще наскока я помню нельзя передавать между клиентом и сервером мутабельные значения, а Объект как раз мутабелен
1
160 / 159 / 13
Регистрация: 14.01.2010
Сообщений: 1,497
17.01.2013, 17:38  [ТС] 3
Это как раз оно и есть.
Хотя не понятно как это передавать объект по значению.
0
90 / 90 / 17
Регистрация: 26.10.2012
Сообщений: 249
17.01.2013, 19:29 4
Если тебе нужен конкретный объект, его можно получить по ссылке: ссылка.ПолучитьОбъект(). При этом объект должен существовать в базе (т.е. записан).
0
160 / 159 / 13
Регистрация: 14.01.2010
Сообщений: 1,497
18.01.2013, 11:11  [ТС] 5
В том то и дело я хотел распечатать не сохраненный док
0
858 / 657 / 111
Регистрация: 01.11.2012
Сообщений: 2,411
18.01.2013, 12:24 6
Через форму, а не через объект тогда.
0
160 / 159 / 13
Регистрация: 14.01.2010
Сообщений: 1,497
18.01.2013, 14:37  [ТС] 7
Примерчик можно?
0
858 / 657 / 111
Регистрация: 01.11.2012
Сообщений: 2,411
18.01.2013, 15:37 8
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
&НаСервере
Процедура ПечДок(Таб)
    Об=РеквизитФормыВЗначение("Объект");
    М=Об.ПолучитьМакет("Макет");
    Обл=М.ПолучитьОбласть("Заг");
    Таб.Вывести(Обл);
    
    
    ИтК=0; ИтС=0;
    for each Стр in Об.Товары do
        Обл=М.ПолучитьОбласть("Строка");
        Обл.Параметры.Тов=Стр.Товар;
        Обл.Параметры.Кол=Стр.Количество;
        Обл.Параметры.Ц=Стр.Цена;
        Обл.Параметры.Сум=Стр.Сумма;
        Таб.Вывести(Обл);
        ИтК=ИтК+Обл.Параметры.Кол;
        ИтС=ИтС+Обл.Параметры.Сум;
    enddo;  
    Обл=М.ПолучитьОбласть("Итого");
    Обл.Параметры.ИтК=ИтК;
    Обл.Параметры.ИтС=ИтС;
    Таб.Вывести(Обл);
КонецПроцедуры    
 
&НаКлиенте
Процедура Печать(Команда)
    Таб=Новый ТабличныйДокумент;
    ПечДок(Таб);
    Таб.Показать();
КонецПроцедуры
Печатает не сохраненный документ на тонком клиенте, тока что у себя написал.
1
160 / 159 / 13
Регистрация: 14.01.2010
Сообщений: 1,497
20.01.2013, 15:45  [ТС] 9
Хотя с таким же успехом можно просто обратиться к Объекту.
0
858 / 657 / 111
Регистрация: 01.11.2012
Сообщений: 2,411
20.01.2013, 16:06 10
Если документ не сохранен, объекта ещё нет
0
160 / 159 / 13
Регистрация: 14.01.2010
Сообщений: 1,497
20.01.2013, 16:57  [ТС] 11
Поставил в ваш цикл перебора
Сообщить(объект.тчМатериалы[н].ркМатериал);
Все работает, док не сохранял
0
858 / 657 / 111
Регистрация: 01.11.2012
Сообщений: 2,411
20.01.2013, 17:14 12
Мистика, у меня так не заработало.

Добавлено через 8 минут
А, у меня не работало ПолучитьМакет. Остальное действительно работает через Объект
0
Модератор
Эксперт 1С
4029 / 2974 / 591
Регистрация: 10.03.2011
Сообщений: 11,701
Записей в блоге: 1
21.01.2013, 11:59 13
Зарезервированное ОБЪЕКТ в модуле формы имеет тип ДанныеФормыСтруктура, соответственно что бы обращаться к эспортным процедурам этого объекта (обработки в данном случае) и получить макет в конкретном случае необходимо привести тип Формы в прикладной тип
Пример:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
&НаКлиенте
Процедура Команда1(Команда)
    
    ПолучитьМакетСервер();
    
    
КонецПроцедуры
 
&наСервере
Процедура ПолучитьМакетСервер()
    
    гОбъект = РеквизитФормыВЗначение("Объект");
    Макет = гОбъект.ПолучитьМакет("Макет");
    
КонецПроцедуры
2
21.01.2013, 11:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.01.2013, 11:59
Помогаю со студенческими работами здесь

Изменить данные в поле fremarks корректно
Добрый день! В документе есть история согласования записанная в поле Fremarks, как поменять там что...

Изменить поле для редактирования описания товара в бок формы
Здравствуйте! Есть поле типа textarea с названием Детальное описание. Хочу переместить его в бок...

Проверка на веденные данные в поле формы
Здравствуйте! Нужна ваша помощь. Написал небольшую страничку. Нужно сделать проверки на поля формы....

Как выделить определенное поле формы, чтобы потом изменить его свойства?
Здравствуйте. Ситуация такая: есть форма(F_Printer) в ней более 30 полей. При двойном нажатии на...

Как указать в поле по умолчанию в таблице данные с формы
Добрый день. У меня в таблице есть поле где по умолчанию вот такая формула =DateAdd("h";4;Now())...

Как передать данные SELECT'a в другое поле формы?
<?php /* подключаем базу */ include_once("add\andbd.php"); $query = "SELECT * FROM `dom` ORDER...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru