![]() |
|
Модераторы: stron |
![]()
|
|
| sergey_85 |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 445 Регистрация: 17.4.2007 Где: Россия, Челябинск Репутация: нет Всего: 1 |
Привет!
Дописываю модуль формы документа. В модуле формы док-та есть нужная мне преодпределення процедура.
Мне нужно в этой процедуре получить добавленную строку табличной части, но в ответ ... лишь пустота!!! Может это косяк 1С?
-------------------- A good design always pays off. |
||||
|
|||||
| Itsys |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1338 Регистрация: 21.1.2008 Где: г. Москва Репутация: 7 Всего: 34 |
Зачем так мудрено?
у Вас курсор и так стоит на строке, которая редактировалась, соответственно достаточно
|
|||
|
||||
| sergey_85 |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 445 Регистрация: 17.4.2007 Где: Россия, Челябинск Репутация: нет Всего: 1 |
да это работает, но странно почему мой вариант не работает?
здесь идет возврат пустой строки
а здесь все ок возвр. то что надо!
-------------------- A good design always pays off. |
||||
|
|||||
| Itsys |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1338 Регистрация: 21.1.2008 Где: г. Москва Репутация: 7 Всего: 34 |
Потому-что, ТекущийДокумент() возвращает ссылку на объект в двух вариантах: если документ новый, то будет пустое значение, если записанный, то ссылку на существующий (записанный) объект, у которого вновь ввденная строка мало того, что не записана, ты и ссылка возвращается на объект, у которого для получения значений про строками необходимо выполнить процедуру выборки строк "ВыбратьСтроки(); ПолучитьСтроку()"
|
|||
|
||||
| sergey_85 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 445 Регистрация: 17.4.2007 Где: Россия, Челябинск Репутация: нет Всего: 1 |
спасибо за пояснения Itsys!
но, тогда можно ли как-то передать в функцию только что созданную строку, для получения всех реквизитов табличной части и сравнения? -------------------- A good design always pays off. |
|||
|
||||
| Itsys |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1338 Регистрация: 21.1.2008 Где: г. Москва Репутация: 7 Всего: 34 |
через "Контекст"
|
|||
|
||||
| sergey_85 |
|
||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 445 Регистрация: 17.4.2007 Где: Россия, Челябинск Репутация: нет Всего: 1 |
Еще мини вопрос
т.е. я хочу узнать как обратиться например к ПолучитьАтрибут("Наименование") в полном виде а не сокращенно. использую модуль формы
Пробовал так, ошибка
а вот так идет, но как-то мудренно
Спасибо! Это сообщение отредактировал(а) sergey_85 - 30.7.2009, 06:58 -------------------- A good design always pays off. |
||||||||
|
|||||||||
| Itsys |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1338 Регистрация: 21.1.2008 Где: г. Москва Репутация: 7 Всего: 34 |
Бр... поподробнее, чего ты хочешь добиться....
Добавлено через 32 секунды Какова цель всего этого, опиши словами, т.к. не понимаю зачем тебе все это нужно... |
|||
|
||||
| sergey_85 |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 445 Регистрация: 17.4.2007 Где: Россия, Челябинск Репутация: нет Всего: 1 |
ну мне нужно сравнивать табличную часть документа, я пишу логгер док-тов
в процедуре ПриОкончанииРедактированияСтроки, приудалении ловлю момент когда табличная часть док-та изменяется пишу эти изменения в свою временную таблицу и в конце сравниваю с оригиналом. Все ничего но столкнулся с проблемой о которой писал в начале (т.е. вместо новой строки получаю пустоту) Кажется я вышел из ситуации так:
только один минус -
Это сообщение отредактировал(а) sergey_85 - 30.7.2009, 11:52 -------------------- A good design always pays off. |
||||
|
|||||
| Itsys |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1338 Регистрация: 21.1.2008 Где: г. Москва Репутация: 7 Всего: 34 |
Зачем городить такой огород с временной таблицей и т.д.
Все элементарно: В процедуру "ПриЗаписи" вызываешь ТекущийДокумент() - это ссылка на объект, сохраненный в БД, и, реквизиты этого объекта сравниваешь текущими реквизитами.
|
|||
|
||||
| sergey_85 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 445 Регистрация: 17.4.2007 Где: Россия, Челябинск Репутация: нет Всего: 1 |
да я такие варианты видел, но главбух требует чтоб было видно какая строка была удалена, что было изменено (конкретно по параметрам), что добавлено
и еще здесь не учтено что будет если я возьму и перемещу одну строку вверх? получится что она новая? Это сообщение отредактировал(а) sergey_85 - 30.7.2009, 12:25 -------------------- A good design always pays off. |
|||
|
||||
| AkelaSQL |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 392 Регистрация: 14.9.2007 Где: Москва Репутация: 6 Всего: 7 |
Да, это старый больной вопрос...
Главбухи наверное все такие. Вместо того, чтобы набрать на работу адекватных людей - набирают обезьян, а потом дурят голову программистам, что бы те следили за тем, чтобы они не дай бог чего не натворили... Зоопарк одним словом.... |
|||
|
||||
| sergey_85 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 445 Регистрация: 17.4.2007 Где: Россия, Челябинск Репутация: нет Всего: 1 |
просто люди они такие, щепетильные, за каждой мелочью глядят, все проверяют перрепроверяют и т.д. .... ну а нам программерам, как обычно все это делать, делать, делать! пс: а потом еще и доделывать и переделывать! Это сообщение отредактировал(а) sergey_85 - 30.7.2009, 13:30 -------------------- A good design always pays off. |
|||
|
||||
| Itsys |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1338 Регистрация: 21.1.2008 Где: г. Москва Репутация: 7 Всего: 34 |
Развивай логику... всегда можно при сравнении определить была ли удалена строка или только изменена, а с добавлением строк или удалением еще проще... в этом случае не выполняется условие "Док.КоличествоСтрок()<>КоличествоСтрок()". ЗЫ для точного определения, чего происходит со строкой, достаточно модифицировать документ и ввести такой реквизит, как идентификатор строки, которые можно получать, напимер с помощью "СоздатьGUID()", тогда любая строка любого документа будет иметь уникальный идентификатор, по которому можно сравнивать значения. |
|||
|
||||
| sergey_85 |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 445 Регистрация: 17.4.2007 Где: Россия, Челябинск Репутация: нет Всего: 1 |
Мне тоже хотелось бы, guid у каждой строки, но его нет и добавлять не хочу (не охота особо менять метаданные).
Над логикой я конечно же думаю и варианты типа "Док.КоличествоСтрок()<>КоличествоСтрок()" перебирал и в 1 очередь конечно же думал о сравнении док-та при записи, а не о том какое удовольствие в каждой процедурке лепить непонятно что и как. Всем спасибо за помощь! -------------------- A good design always pays off. |
||||
|
|||||
![]()
|
| Правила форума "1C: Предприятие, SAP, ERP и учётные системы" | |
|
|
Запрещается! 1. Обсуждение крэков, кейгенов и других подобных программ Пробуйте искать сами или обращайтесь в приват к участникам форума. Темы с подобными вещами будут немедленно удаляться, а нарушители - получать предупреждения. Также запрещается обсуждение проблем работы этих программ (что куда вписать, куда что скопировать и т.п...) 2. Давать ссылки на взломанные продукты
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | 1C: Предприятие, SAP, ERP и учётные системы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |