Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Приси записи номенклатуры в наименование добавить код , Управляемые формы          
Irina_ Подменю пользователя
сообщение 03.11.11, 15:05
Сообщение #1

Говорящий
***
Группа: Пользователи
Сообщений: 89
Из: Одесса-мама
Спасибо сказали: 41 раз
Рейтинг: 0

Здравствуйте, и снова к Вам за советом.

Нужно при записи Номенклатуры в наименование добавить код (не спрашивайте зачем, так было в 8.1, сама не понимаю необходимости но поросили сделать так же в управляемой)

Так вот, при записи делаю так:

&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    ТекущийОбъект.Наименование =  ТекущийОбъект.Наименование + " " + Строка(ТекущийОбъект.Код);
КонецПроцедуры


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


Signature
Нежная логика легкого абсурда

Vofka Подменю пользователя
сообщение 03.11.11, 15:16
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Если открыть/Закрыть форму - наименование потом с кодом становится?

Спасибо сказали: Irina_,

Irina_ Подменю пользователя
сообщение 03.11.11, 15:45
Сообщение #3

Говорящий
***
Группа: Пользователи
Сообщений: 89
Из: Одесса-мама
Спасибо сказали: 41 раз
Рейтинг: 0

Цитата(Vofka @ 03.11.11, 15:16) *
Если открыть/Закрыть форму - наименование потом с кодом становится?


Нет. Если делать это в процедуре ПриСозданииНаСервере то картина та же но когда закрываешь/открываешь то значение новое подставляется.
Но мне кажется этот вариант не "фонтан"))


Signature
Нежная логика легкого абсурда

vbi Подменю пользователя
сообщение 03.11.11, 16:00
Сообщение #4

Оратор
Иконка группы
Группа: Местный
Сообщений: 373
Из: Украина, Луцк
Спасибо сказали: 72 раз
Рейтинг: 0

А "ПередЗаписью"?
Объект.Наименование = Объект.Наименование + Объект.Код;

Кстате, представим что вы записали номенклатуру как надо, потом открываете - и наименование у Вас такое "Товар00001" (с кодом, так ведь?). А теперь если ее еще раз записать, тогда наименование будет такое "Товар0000100001". Нехорошо smile.gif


Signature
Впроваджую, супроводжую

Спасибо сказали: Irina_,

Irina_ Подменю пользователя
сообщение 03.11.11, 16:02
Сообщение #5

Говорящий
***
Группа: Пользователи
Сообщений: 89
Из: Одесса-мама
Спасибо сказали: 41 раз
Рейтинг: 0

Цитата(vbi @ 03.11.11, 16:00) *
А "ПередЗаписью"?
Объект.Наименование = Объект.Наименование + Объект.Код;

Кстате, представим что вы записали номенклатуру как надо, потом открываете - и наименование у Вас такое "Товар00001" (с кодом, так ведь?). А теперь если ее еще раз записать, тогда наименование будет такое "Товар0000100001". Нехорошо smile.gif


ПередЗаписью код еще не сформирован ((


Signature
Нежная логика легкого абсурда

Спасибо сказали: vbi,

vbi Подменю пользователя
сообщение 03.11.11, 16:04
Сообщение #6

Оратор
Иконка группы
Группа: Местный
Сообщений: 373
Из: Украина, Луцк
Спасибо сказали: 72 раз
Рейтинг: 0

Объект.Наименование = Объект.Наименование + Объект.Код;

так должно работать - только что проверил у себя - работает. При чем на Веб-клиенте! ))


Signature
Впроваджую, супроводжую

Спасибо сказали: Irina_,

Irina_ Подменю пользователя
сообщение 03.11.11, 16:05
Сообщение #7

Говорящий
***
Группа: Пользователи
Сообщений: 89
Из: Одесса-мама
Спасибо сказали: 41 раз
Рейтинг: 0

Цитата(vbi @ 03.11.11, 16:00) *
Кстате, представим что вы записали номенклатуру как надо, потом открываете - и наименование у Вас такое "Товар00001" (с кодом, так ведь?). А теперь если ее еще раз записать, тогда наименование будет такое "Товар0000100001". Нехорошо smile.gif


Ну это уже мелочи, с этим я уже наю что делать, основная проблема сейчас всунуть в наименование код и чтоб наименование обновлялось )))

Цитата(vbi @ 03.11.11, 16:04) *
Объект.Наименование = Объект.Наименование + Объект.Код;

так должно работать - только что проверил у себя - работает. При чем на Веб-клиенте! ))


В процедуре ПередЗаписью?


Signature
Нежная логика легкого абсурда

vbi Подменю пользователя
сообщение 03.11.11, 16:11
Сообщение #8

Оратор
Иконка группы
Группа: Местный
Сообщений: 373
Из: Украина, Луцк
Спасибо сказали: 72 раз
Рейтинг: 0

Вызовите
УстановитьНовыйКод(<ПрефиксКода>);
и все. Можна вызвыть при создании на сервере.

При создании на сервере вызываете УстановитьНовыйКод(<ПрефиксКода>);

а ПередЗаписью на клиенте Объект.Наименование = Объект.Наименование + Объект.Код;


Signature
Впроваджую, супроводжую

Спасибо сказали: Irina_,

Irina_ Подменю пользователя
сообщение 03.11.11, 16:13
Сообщение #9

Говорящий
***
Группа: Пользователи
Сообщений: 89
Из: Одесса-мама
Спасибо сказали: 41 раз
Рейтинг: 0

Цитата(vbi @ 03.11.11, 16:11) *
Вызовите
УстановитьНовыйКод(<ПрефиксКода>);
и все. Можна вызвыть при создании на сервере.

При создании на сервере вызываете УстановитьНовыйКод(<ПрефиксКода>);

а ПередЗаписью на клиенте Объект.Наименование = Объект.Наименование + Объект.Код;


ПриСоданииНаСервере вызывается даже при открытии существующего элемента....хорошо там вызывать УстановитьНовыйКод ?


Signature
Нежная логика легкого абсурда

vbi Подменю пользователя
сообщение 03.11.11, 16:35
Сообщение #10

Оратор
Иконка группы
Группа: Местный
Сообщений: 373
Из: Украина, Луцк
Спасибо сказали: 72 раз
Рейтинг: 0

Цитата
ПриСоданииНаСервере вызывается даже при открытии существующего элемента....хорошо там вызывать УстановитьНовыйКод ?

Да. Ведь (тем более на сервере) проверить условие нового:

Если Объект.ЭтоНовый() Тогда
     УстановитьНовыйКод("");
КонецЕсли;


Скажете, получилось ли.


Signature
Впроваджую, супроводжую

Спасибо сказали: Irina_,

Irina_ Подменю пользователя
сообщение 03.11.11, 17:06
Сообщение #11

Говорящий
***
Группа: Пользователи
Сообщений: 89
Из: Одесса-мама
Спасибо сказали: 41 раз
Рейтинг: 0

Цитата(vbi @ 03.11.11, 16:35) *
Да. Ведь (тем более на сервере) проверить условие нового:

Если Объект.ЭтоНовый() Тогда
     УстановитьНовыйКод("");
КонецЕсли;


Скажете, получилось ли.


Ругается что Метод объекта не обнаружен УстановитьКод ((


Signature
Нежная логика легкого абсурда

Kutuzov Подменю пользователя
сообщение 03.11.11, 17:13
Сообщение #12

Оратор
Иконка группы
Группа: Местный
Сообщений: 328
Из: Одесса
Спасибо сказали: 144 раз
Рейтинг: 0

Цитата(Irina_ @ 03.11.11, 17:06) *
Ругается что Метод объекта не обнаружен УстановитьКод ((


УстановитьНовыйКод() И кавычки не нужны


Signature
Вы станете богаче, лишь став умнее...
Чем дальше в лес, тем толще партизаны.
Нельзя недооценивать, не предсказуемость тупизны...

Спасибо сказали: Irina_,

vbi Подменю пользователя
сообщение 03.11.11, 17:26
Сообщение #13

Оратор
Иконка группы
Группа: Местный
Сообщений: 373
Из: Украина, Луцк
Спасибо сказали: 72 раз
Рейтинг: 0

Сори...
Объект.УстановитьНовыйКод("");

rolleyes.gif

Вот, проверил у себя: 100% работает:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    ДокОбъект = РеквизитФормыВЗначение("Объект");
    Если ДокОбъект.ЭтоНовый() Тогда
         ДокОбъект.УстановитьНовыйКод("");
    КонецЕсли;
    ЗначениеВРеквизитФормы(ДокОбъект,"Объект");
КонецПроцедуры


&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
    Объект.Наименование = Объект.Наименование + Объект.Код;
КонецПроцедуры


Signature
Впроваджую, супроводжую

Спасибо сказали: Irina_,

Irina_ Подменю пользователя
сообщение 03.11.11, 17:31
Сообщение #14

Говорящий
***
Группа: Пользователи
Сообщений: 89
Из: Одесса-мама
Спасибо сказали: 41 раз
Рейтинг: 0

Цитата(vbi @ 03.11.11, 17:26) *
Сори...
Объект.УстановитьНовыйКод("");

rolleyes.gif

Вот, проверил у себя: 100% работает:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    ДокОбъект = РеквизитФормыВЗначение("Объект");
    Если ДокОбъект.ЭтоНовый() Тогда
         ДокОбъект.УстановитьНовыйКод("");
    КонецЕсли;
    ЗначениеВРеквизитФормы(ДокОбъект,"Объект");
КонецПроцедуры


&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
    Объект.Наименование = Объект.Наименование + Объект.Код;
КонецПроцедуры



Поняла в чем ошибка. Если не делать ДокОбъект = РеквизитФормыВЗначение("Объект"); то Объект это структура параметров, поэтому и ругалось ))

Теперь все получилось ))
vbi, СПАСИБО Вам ОГРОМНОЕ :-*


Signature
Нежная логика легкого абсурда

vbi Подменю пользователя
сообщение 03.11.11, 17:48
Сообщение #15

Оратор
Иконка группы
Группа: Местный
Сообщений: 373
Из: Украина, Луцк
Спасибо сказали: 72 раз
Рейтинг: 0

Да, Объект формі - єто всего лишь структура. это сделано для разделения функционала клиента и сервера. Вообще на клиенте не может быть объект, но по привычке 1Сники сделали такой объект и вставили все реквизиты настоящего объекта туда. И эти реквизиты вполне можно использовать. Вот только методы из структуры вызывать нельзя)


Signature
Впроваджую, супроводжую

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 21:01
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!