|
Не записывается значение, передаваемое реквизиту документа 1С 8.2. | ☑ | ||
---|---|---|---|---|
0
1CProfessional
24.07.11
✎
13:27
|
Привет. У меня такой вопрос...
|
|||
1
1CProfessional
24.07.11
✎
13:35
|
//ОбщиеМодули
Функция ВводФИОПользователя(ФИО) Экспорт Результат = Ложь; ФИО = ""; Если ВвестиСтроку(ФИО,"Введите свое ФИО.",50,Ложь) Тогда Если Не ПустаяСтрока(ФИО) Тогда Результат = Истина; КонецЕсли; КонецЕсли; Возврат Результат; КонецФункции //ФормаДокументаМастер &НаКлиенте Процедура ПослеЗаписи(ПараметрыЗаписи) //Вставить содержимое обработчика ТекФИО = ""; Если ОбработкаТабличнойЧастиТоварыКлиент.ВводФИОПользователя(ТекФИО) Тогда ФИОПользователя = ТекФИО; Сообщить(""+ФИОПользователя); КонецЕсли; КонецПроцедуры В этом случае у меня открывается нужный мне интерактивный ввод строки, но реквизиту документа ФИОПользователя значение ТекФИО не присваивается. Подскажите - почему? |
|||
2
izekia
24.07.11
✎
13:35
|
какой
|
|||
3
izekia
24.07.11
✎
13:40
|
А ты ТекФИО проверь?
мне кажется на сервер она уйдет по значению, а не по ссылке, хотя возможно я неправ |
|||
4
kimi_mm
24.07.11
✎
13:45
|
попробуй при присваивание обратится напрямую к реквизиту документа - Объект.ФИОПользователя
|
|||
5
Ник второй
24.07.11
✎
13:47
|
Расширение формы документа.ПослеЗаписи (Document form extension.AfterWrite)
Расширение формы документа (Document form extension) ПослеЗаписи (AfterWrite) Синтаксис: ПослеЗаписи() Описание: Возникает после записи объекта, и после окончания транзакции записи, то есть к моменту вызова этой процедуры запись объекта полностью завершена. |
|||
6
izekia
24.07.11
✎
13:48
|
(5) вопрос не в логических ошибках
|
|||
7
Ник второй
24.07.11
✎
13:50
|
ну ну . Читаем внимательно:
"v8: Не записывается значение, передаваемое реквизиту документа 1С 8.2." - хочет изменить реквизит документа после записи. |
|||
8
Мимохожий Однако
24.07.11
✎
13:51
|
Поставь на строчку
Если ОбработкаТабличнойЧастиТоварыКлиент.ВводФИОПользователя(ТекФИО) Тогда отладчик |
|||
9
1CProfessional
24.07.11
✎
13:53
|
забыл сказать сразу, что пробовал сделать и процедуре ПередЗаписью() - то же самое.
|
|||
10
Икогнито
24.07.11
✎
13:54
|
(9) синхронизируй данные формы клиента с данными памяти сервера, сравни версии объектов
|
|||
11
Икогнито
24.07.11
✎
13:55
|
Объект.ФИОПользователя = ?
|
|||
12
Икогнито
24.07.11
✎
13:57
|
1CProfessional, твой ник отражает получение сертификата, или то, что ты обречен на успех? :)
|
|||
13
1CProfessional
24.07.11
✎
13:57
|
(11) не проверил еще... сейчас...
|
|||
14
1CProfessional
24.07.11
✎
13:58
|
(12) мой ник отображает мое стремление стать им! ))
|
|||
15
izekia
24.07.11
✎
14:02
|
(7) я так понял, что Сообщить(""+ФИОПользователя); выдает пустую строчку
|
|||
16
1CProfessional
24.07.11
✎
14:03
|
(15) нет! кк раз выжает введенной пользователей ФИО - строку.
|
|||
17
1CProfessional
24.07.11
✎
14:05
|
делаю сейчас все это в ПередЗаписью() - нет желаемого результата...
|
|||
18
1CProfessional
24.07.11
✎
14:06
|
не подскажете, а есть что-нибудь из инструментария к 8.2 типа "NHANDS.ERT" для 7.7???
|
|||
19
1CProfessional
24.07.11
✎
14:09
|
а как шагать в отладчике 8.2?
|
|||
20
Ник второй
24.07.11
✎
14:10
|
Срочно во франч, там научат шагать.
|
|||
21
1CProfessional
24.07.11
✎
14:11
|
франч от меня в 70-ти км!
|
|||
22
1CProfessional
24.07.11
✎
14:12
|
ближайший
|
|||
23
Ник второй
24.07.11
✎
14:12
|
Тогда .
Помогу удаленно 800 руб час. |
|||
24
1CProfessional
24.07.11
✎
14:13
|
это ты загнул, бадди
|
|||
25
1CProfessional
24.07.11
✎
14:13
|
)))
|
|||
26
temsa
24.07.11
✎
14:15
|
(25) научу шагать за 400 руб :)
|
|||
27
1CProfessional
24.07.11
✎
14:16
|
))))
|
|||
28
1CProfessional
24.07.11
✎
14:16
|
если написать Объект.ФИОПользователя = ТекФИО получаю ошибку при проверке на сервере...
|
|||
29
1CProfessional
24.07.11
✎
14:34
|
не подскажете, а есть что-нибудь из инструментария к 8.2 типа "NHANDS.ERT" для 7.7?
|
|||
30
Икогнито
24.07.11
✎
15:52
|
ПередЗаписью()
|
|||
31
1CProfessional
24.07.11
✎
16:07
|
(30) no result!!!
|
|||
32
Мимохожий Однако
24.07.11
✎
16:26
|
(28)Текст ошибки в студию...И встань отладчиком на строку перед ошибкой.
|
|||
33
1CProfessional
24.07.11
✎
17:47
|
ФИОПользователя = ТекФИО;
Сообщить(""+ФИОПользователя); мне сообщается введенная мной строка! не пойму - почему документ не хватает в реквизит ФИОПользователя это значение?! еще раз - делаю это уже в процедуре ПередЗаписью(). |
|||
34
1CProfessional
24.07.11
✎
17:51
|
как я проверяю и вижу, что реквизиты по документам остаются незаполненными? да вот как:
внешняя обработка с кодом: //*********************************************************** Процедура РеестрДоков() Выборка = Документы.ЧекККМ.Выбрать(НачДата,КонДата); Пока Выборка.Следующий() Цикл Если ПустаяСтрока(Выборка.ФИОПользователя) Тогда Сообщить(""+Выборка+" - нет данных"); Иначе Сообщить(""+Выборка+" - "+Выборка.ФИОПользователя); КонецЕсли; КонецЦикла КонецПроцедуры &НаКлиенте Процедура РеестрДоков1(Команда) // Вставить содержимое обработчика. РеестрДоков(); КонецПроцедуры //НачДата = ТекущаяДата(); //КонДата = ТекущаяДата(); |
|||
35
sanja26
24.07.11
✎
20:04
|
Если ВвестиСтроку(ФИО,"Введите свое ФИО.",50,Ложь) Тогда
убери |
|||
36
1CProfessional
24.07.11
✎
20:27
|
(35) не понял! мне это как раз нужно.
|
|||
37
1CProfessional
25.07.11
✎
07:21
|
ну что - есть мысли?
|
|||
38
Мимохожий Однако
25.07.11
✎
07:29
|
Чтобы шагать в отладчике, надо запустить 1С в режиме отладки. Встаешь на нужную строчку кода в конфигураторе и нажимаешь F5. В меню Отладчик... можно посмотреть различные режимы шагания. Под каждый режим есть своя кнопка на клавиатуре или пиктограмма. Устанавливаешь маркер остановки и начинаешь в 1С Предприятие работать. Когда остановиться программа в указанном месте, то можно посмотреть значения переменных и результат работы используемых в коде методов. А дальше... дальше надо думать почему там не те значения, которые ожидаешь и ставить маркер немного раньше или в самом начале процедуры, чтобы отследить проблемное место
|
|||
39
1CProfessional
26.07.11
✎
22:50
|
(38) Спасибо!!!
|
|||
40
1CProfessional
31.07.11
✎
01:17
|
Нет, вопрос мой не закрыт))
|
|||
41
Reaper_1c
31.07.11
✎
01:20
|
У кого-то походу дублирующиеся имена реквизитов объектов и форм. Может еще и переменные объявлены.
|
|||
42
1CProfessional
31.07.11
✎
01:21
|
да нет... не в этом дело
|
|||
43
1CProfessional
31.07.11
✎
01:33
|
добавил в документ новый реквизит... как теперь его проставить в выборке? перезаписать все доки (около 40 шт.) с заданным этому реквизиту значением (одинаковым пока)?
|
|||
44
1CProfessional
31.07.11
✎
01:38
|
сделать простановку этого реквизита внешней обработкой.
|
|||
45
GROOVY
31.07.11
✎
03:03
|
В модуле формы в процедуре "ПередЗаписью" есть параметр, если не ошибаюсь, "ТекущийОбъект", именно в его свойства надо писать то что должно в итоге записаться в базу, так как просто "объект" это данные формы, которые обновятся после отработки транзакции записи. Документацию надо читать, перед тем как что то ваять. И уж совсем дико видеть изменение объекта в событии "ПослеЗаписи"
(43) А какие варианты? |
|||
46
1CProfessional
08.08.11
✎
09:55
|
(45) Добавил в документ ЧекККМ свой реквизит (Строка). Нужно реализовать его заполнение произвольными строковыми значениями при вводе новых доков в информационную базу данных. Все, потом будет работать мини-реестр документов - так же - мной сделанный - на выборку документов с фильтром по этому реквизиту.
|
|||
47
rrunover
08.08.11
✎
10:09
|
Мне кажется, что ТС игнорирует (4) и (11). Взлетело же бы ведь!
|
|||
48
rrunover
08.08.11
✎
10:14
|
А, не, не игнорирует. :-)
Интересно, а "ЭтаФорма.ФИОПользователя = ТекФИО;" поможет? |
|||
49
1CProfessional
08.08.11
✎
12:45
|
щас попробую ЭтаФорма
|
|||
50
1CProfessional
08.08.11
✎
15:25
|
если пишу ЭтаФорма... - ругается на неизвестность переменной ФИОПользователя
|
|||
51
1CProfessional
08.08.11
✎
15:25
|
равно, как и в случае написания Объект.ФИОПользователя
|
|||
52
rrunover
08.08.11
✎
15:57
|
Так. Давай по порядку.
Судя по коду из (1) ТекФИО = ""; Если ОбработкаТабличнойЧастиТоварыКлиент.ВводФИОПользователя(ТекФИО) Тогда //тут вообще-то ТекФИО не возвращается, а проверяется только на возврат булева. ФИОПользователя = ТекФИО; Сообщить(""+ФИОПользователя); // Однако в (33) ты пишешь, что отражается, что нужно. Откуда берётся? Код весь давай! КонецЕсли; Если директива выполнения перед процедурой/функцией не указана, она будет выполняться на сервере. Для наглядности директиву лучше указывать сразу. |
|||
53
1CProfessional
08.08.11
✎
16:03
|
ОбработкаТабличнойЧастиТоварыКлиент.ВводФИОПользователя(ТекФИО)
В ВводФИОПользователя(ТекФИО) такой код (эту функцию добавил в конфу сам): Функция ВводФИОПользователя(ФИО) Экспорт Результат = Ложь; ФИО = ""; Если ВвестиСтроку(ФИО,"Введите свое ФИО.",50,Ложь) Тогда Если Не ПустаяСтрока(ФИО) Тогда Результат = Истина; КонецЕсли; КонецЕсли; Возврат Результат; КонецФункции |
|||
54
1CProfessional
08.08.11
✎
16:05
|
// Однако в (33) ты пишешь, что отражается, что нужно. Откуда берётся?
именно! сообщается введенное via ВвестиСтроку() строковое значение!!! но к доку оно "не лепится"! |
|||
55
rrunover
08.08.11
✎
16:08
|
Молодец, что добавил.
Функция твоя откроет окошко ввода строки... даст пользователю ввести "Давлаташуевич Саша Сашадшуевич"... и коварно возвратит не введённую строку ФИО, а [ДА] Слышишь, ТС? Функция твою возвратит значение хИСТИНА]: да, хозяина-ма, юзера писал-писал, я видела, да. А? Чо писал? Не, не знаю. |
|||
56
rrunover
08.08.11
✎
16:13
|
Зачем ты вообще эту обработку используешь?
Хочешь какому-то документу присвоить реквизит, который не отражается на форме? Пойди _самым_ простым путём: не дописывай существующее, а напиши маленькую, удобную, _свою_ обработочку: на форме два поля. Одно - выбор нужного документа ЧекККМ, второе - то, что нужно присвоить реквизиту документа. Всё. И с УФ по-человечески разберешься и с директивами разберешься. Да и обработку сможешь выложить и показать, еси чо. |
|||
57
1CProfessional
08.08.11
✎
17:12
|
Погоди... Я все тобой написанное, конечно, прочел! И за это - спасибо, тебе!
НО! Рассказываю для чего это все мне. Есть магазин с одним ноутом. На нем запущена конфа УТ 11.0 (11.0.6.9). В конфи "сидит" один пользователь - Продавец1. При этом продавцов-консультантов - 3 человека. Вот и появилась нужда в "фамилизации" вводимых в БД доков. Я, вообще, в основном с 7.7 (до сих пор) связан на своей основной работе... Неужели не получится реализовать задуманный мною план? |
|||
58
rrunover
09.08.11
✎
09:11
|
А. Ну... ты глобально конечно к задаче-то подошел. С места в карьер :)
Дык это... разве в УТ в документах нет признака "Ответственный" или что-то типа того. Заведи пользователей, но в настройках поставь, чтобы не отражались в списке выбора. Или пусть пишут своё ФИО в поле "Комментарий". Можно так? Неужели решить вопрос без допиливания не получится? |
|||
59
1CProfessional
09.08.11
✎
20:01
|
(58) Я хочу сделать именно так, как выше сказал... Есть на то причины...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |