![]() |
|
Модераторы: stron |
![]()
|
|
| bourne |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 12.7.2009 Репутация: нет Всего: нет |
Здравствуйте, форумчане. Нужно срочно решить задачу по 1с, времени на изучение, к сожалению, нет, поэтому надеюсь на вашу помощь
Необходимо провести документ после проверки некоторых условий. Для этого я использую функцию ПередЗаписью().
|
|||
|
||||
| bourne |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 12.7.2009 Репутация: нет Всего: нет |
Проблема решена. Появилась другая :(
Есть запрос:
Потом я делаю так:
но он почему-то не возвращает ничего, хотя должен. Вместо "Склад" я подставлял имя конкретного склада, результата 0. |
||||
|
|||||
| AkelaSQL |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 392 Регистрация: 14.9.2007 Где: Москва Репутация: 6 Всего: 7 |
Нужно подставлять не имя склада, а ссылку элемента справочника "Склады"
|
|||
|
||||
| bourne |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 12.7.2009 Репутация: нет Всего: нет |
Прошу прощения, забыл написать откуда я беру "Склад":
т.е. у меня есть на форме поле "склад", оттуда я и беру это значение. Это сообщение отредактировал(а) bourne - 8.12.2009, 18:31 |
|||
|
||||
| Itsys |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1338 Регистрация: 21.1.2008 Где: г. Москва Репутация: 7 Всего: 34 |
Врят ли такая конструкция будет работать, т.к. Вы реквизиту "Склад" пытаетесь вместо ссылки присвоить строку. Для того, чтобы заработал запрос достаточно эту строку убрать. |
|||
|
||||
| AkelaSQL |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 392 Регистрация: 14.9.2007 Где: Москва Репутация: 6 Всего: 7 |
Нужно писать скорее всего так:
или так:
в зависимости от типизации реквизита формы (я так понимаю) "Склад" |
||||
|
|||||
| bourne |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 12.7.2009 Репутация: нет Всего: нет |
AkelaSQL и Itsys, спасибо, все заработало
сделал вот так:
А вот по первому сообщению вопросик остался. Можно ли изменить сообщение "Операция не выполнена" на свое? |
|||
|
||||
| AkelaSQL |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 392 Регистрация: 14.9.2007 Где: Москва Репутация: 6 Всего: 7 |
Проще перед этим действом вывести своё
|
|||
|
||||
| Itsys |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1338 Регистрация: 21.1.2008 Где: г. Москва Репутация: 7 Всего: 34 |
Что
что
- это все масло масленое, зачем это присвоение? Если используется "ЭтотОбъект" и в нем есть реквизит "Склад", то обращаться к нему можно напрямую просто "Склад", а свое строкой Вы пере присваиваете реквизиту "Склад" его же значение! При этом меняется модифицированность формы (объекта если в модуле), что влечет за собой дополнительную перезапись объекта в базу. За такое на экзаменах 100% снижают оценку. Как говорится учитесь писать грамотно. По второму пункту: для записи без проведения надо вызывать процедуру "Записать" без установленного режима записи, либо с установленным режимом записи "Запись":
А в процедуре "ПередЗаписью" можно получить режим, и в зависимости от режима либо устанавливать "Отказ = Истина" либо нет. |
||||||
|
|||||||
| AkelaSQL |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 392 Регистрация: 14.9.2007 Где: Москва Репутация: 6 Всего: 7 |
Ну да имя переменной для параметра неудачное. Сразу не обратил внимание.
Добавлено через 3 минуты и 20 секунд СкадПарам = ЭтотОбъект.Склад - так можно если использовать уже существующий листинг и за это оценок не снижают, ибо переменные объявленные в модуле формы работают быстрее, нежели те, что расположены непосредственно на ней. Однако целесообразность такого присвоения оправдана, если значение этого параметра будет использоваться в этом модуле многократно... |
|||
|
||||
| bourne |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 12.7.2009 Репутация: нет Всего: нет |
да...фантазии не хватило назвать переменную по другому
Itsys и AkelaSQL, еще раз спасибо |
|||
|
||||
| Itsys |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1338 Регистрация: 21.1.2008 Где: г. Москва Репутация: 7 Всего: 34 |
И с этим можно поспорить... При открытии формы все реквизиты объекта экспортируются в переменные формы, а задавая новую переменную только занимается лишняя память. Да и кто сказал, что доступ на чтение к переменным объявленным в форме, быстрее чем к реквизитам формы? А самое главное, что сие действие скорее всего происходит в модуле а не в форме. |
|||
|
||||
| AkelaSQL |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 392 Регистрация: 14.9.2007 Где: Москва Репутация: 6 Всего: 7 |
Спорить можно, но есть реальные результаты замеров производительности, можете провести эксперименты сами. В руки Вам большой цикл, в котором оперируйте с переменной, сначала объявленной на форме, потом в модуле и замер производительности в конфигураторе.
Добавлено через 6 минут и 28 секунд Вот для 7.7, я уверен для 8.1 ситуация отличается не сильно: http://subscribe.ru/archive/comp.soft.prog...1/18080241.html
|
|||
|
||||
| Itsys |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1338 Регистрация: 21.1.2008 Где: г. Москва Репутация: 7 Всего: 34 |
Данное утверждение справедливо для элементарных типов, но не для ссылок. В текст модуля формы документа:
Результат:
В 1,5 раза или 0,0000016 сек на одну операцию чтения в реальных ситуациях на картину повлиять не могут. А вместо этого необходимо кроме названия реквизитов еще и помнить и тащить везде и во все процедуры названия локальных переменных... Добавлено через 20 секунд ЗЫ локальная база... |
||||
|
|||||
| AkelaSQL |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 392 Регистрация: 14.9.2007 Где: Москва Репутация: 6 Всего: 7 |
Никто не спорит, что это те-же яйца, только в профиль. Но факт на лицо...
|
|||
|
||||
![]()
|
| Правила форума "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. |