:: Не фоксом единым
VFP+1C, второй шаг
Vedmak
Автор

Сообщений: 5949
Откуда: CiTY
Дата регистрации: 30.10.2003
forum.foxclub.ru продолжаю.

Поиск значения в справочнике не выполняется.

Отступление: в нескольких справочниках поиск работает ожидаемо.

Проблема:

1. Вызов функции *ПоискПоКоду*: joxi.ru

2. Debug: joxi.ru

Если я что-то понимаю, то поиск отрабатывает успешно ибо (так мне мнится мой код) функция возвращает в loItem объект, т.е. данные найдены. Только не пойму, что объект по факту пустой. При открытии в 1C поле не заполнено: joxi.ru


------------------
Говорить стоит лишь для тех, кто слушает.




Исправлено 1 раз(а). Последнее : Vedmak, 18.09.19 20:33
Ratings: 0 negative/0 positive
Re: VFP+1C, второй шаг
pasha_usue

Сообщений: 3647
Откуда: Е-бург
Дата регистрации: 06.10.2006
НайтиПоКоду это функция/метод объекта справочника. Она возвращает результат 0/1 (не нашёл/нашёл). Если не нашёл, то в переменной справочника всё-равно будет объект, но пустой. Да.

Тут парадигма корявая. В восьмёрке всё уже более или менее прозрачно реализована. А в семёрке у тебя есть объект Справочник, и он что-то типа Record в ADO. Говоришь ему переместись туда: он перемещается и показывает поля конкретной записи. Либо не перемещается.
Ratings: 0 negative/0 positive
Re: VFP+1C, второй шаг
Vedmak
Автор

Сообщений: 5949
Откуда: CiTY
Дата регистрации: 30.10.2003
pasha_usue
НайтиПоКоду это функция/метод объекта справочника. Она возвращает результат 0/1 (не нашёл/нашёл)....


Это я проверяю и, по идее, ожидаю, что из функции вернется переменная не типа (Object).

FUNCTION v77_directory
LPARAMETERS loV77, lcDirectory, lcFunction, FindValue, loDirectory
lcDirectory= 'Справочник.'+lcDirectory
loDirectory = loV77.EvalExpr('CreateObject("'+lcDirectory+'")')
IF loDirectory. &lcFunction ( FindValue, 0 ) = 0
loDirectory = .null.
ENDIF
RETURN goApp.error_id = no_error
ENDFUNC

и это отрабатывает не отрабатывает ?
loDirectory = .null.


------------------
Говорить стоит лишь для тех, кто слушает.
Ratings: 0 negative/0 positive
Re: VFP+1C, второй шаг
pasha_usue

Сообщений: 3647
Откуда: Е-бург
Дата регистрации: 06.10.2006
А вызов функции такой?
LOCAL loDirectory
loDirectory = .NULL.
IF v77_directory(goV77, "Номенклатура", "НайтиПоКоду", "00001", loDirectory)==no_error
ENDIF

Просто при таком построении кода, как сделано в функции, в самом фоксе могут быть варианты наглючиться (;Ж
Ratings: 0 negative/0 positive
Re: VFP+1C, второй шаг
Vedmak
Автор

Сообщений: 5949
Откуда: CiTY
Дата регистрации: 30.10.2003
pasha_usue
А вызов функции такой?...

Ссылки на снимки кода в первом посте, там и вызов есть


------------------
Говорить стоит лишь для тех, кто слушает.
Ratings: 0 negative/0 positive
Re: VFP+1C, второй шаг
pasha_usue

Сообщений: 3647
Откуда: Е-бург
Дата регистрации: 06.10.2006
Vedmak
pasha_usue
А вызов функции такой?...

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

Я вижу в фоксовом коде попытку изменить парадигму 1С на уровне обёртки. Вот если хочется, чтоб возвращался либо .NULL., либо объект, то нельзя в переменную сначала записать объект, а потом его затереть, если он не понравился. Надо произвести вычисления в одном объекте, а если получившийся объект понравился, то его присвоить результату функции. Это снимает большинство вопросов.
Ratings: 0 negative/0 positive
Re: VFP+1C, второй шаг
Vedmak
Автор

Сообщений: 5949
Откуда: CiTY
Дата регистрации: 30.10.2003
joxi.ru

joxi.ru

Даже так НайтиПоКоду возвращает 1, но в документе поле пустое.


------------------
Говорить стоит лишь для тех, кто слушает.
Ratings: 0 negative/0 positive
Re: VFP+1C, второй шаг
pasha_usue

Сообщений: 3647
Откуда: Е-бург
Дата регистрации: 06.10.2006
Vedmak
Даже так НайтиПоКоду возвращает 1, но в документе поле пустое.
Возможно, что вернулось корректное значение. А поле пустое совсем по другим причинам.

Насколько я вижу в конфигурации это не поле реквизита ВидОплаты, это само-по-себе поле ВидОплатыСпр. И заполняется он при открытии документа. И через жопу.
Если (ВидОплатыСпр.Выбран() = 0) и (ВидОплаты.Выбран()=1) Тогда // Павел 05.11.2009
СпрВидыОплат = СоздатьОбъект("Справочник.ВидыОплат");
Если СпрВидыОплат.НайтиПоНаименованию(СокрЛП(ВидОплаты),0) = 1 Тогда
ВидОплатыСпр = СпрВидыОплат.ТекущийЭлемент();
КонецЕсли;
КонецЕсли;
И даже понятно, почему через жопу. Потому что ВидОплаты это Перечисление.ВидОплаты, А ВидОплатыСпр это Справочник.ВидыОплат.

Всё понятно. Вам надо в вашей процедуре заполнить не значением справочника, а значением перечисления. И следить, что б совпадали названия оплат в справочнике и в перечислении (при необходимости дополнить перечисление).
Ratings: 0 negative/0 positive
Re: VFP+1C, второй шаг
Vedmak
Автор

Сообщений: 5949
Откуда: CiTY
Дата регистрации: 30.10.2003
Да, я это давно заметил. В конфигурации Справочник.ВидыОплат вообще не описана структура joxi.ru, а содержание Перечесление.ВидыОплаты, указанный в шапке joxi.ru, не соответствует доступному в форме документа joxi.ru. Как же получить ссылку на значение из справочника доступног в документе ? Он в программе открывается в через Справочники->Дополнительные joxi.ru.


------------------
Говорить стоит лишь для тех, кто слушает.




Исправлено 1 раз(а). Последнее : Vedmak, 20.09.19 08:15
Ratings: 0 negative/0 positive
Re: VFP+1C, второй шаг
pasha_usue

Сообщений: 3647
Откуда: Е-бург
Дата регистрации: 06.10.2006
Vedmak
Да, я это давно заметил. В конфигурации Справочник.ВидыОплат вообще не описана структура joxi.ru, а содержание Перечесление.ВидыОплаты, указанный в шапке joxi.ru, не соответствует доступному в форме документа joxi.ru. Как же получить ссылку на значение из справочника доступног в документе ? Он в программе открывается в через Справочники->Дополнительные joxi.ru.
Поехали по пунктам:

1. Структура справочника виды оплат определена достаточно. Все справочники содержат Код и Наименование. Плюсом к коду и наименованию можно добавлять другие реквизиты, но для ВидаОплат в этом нет необходимости.
2. Перечисление ВидыОплаты определено в конфигурации ниже:
[attachment 31947 1C_Vedmak_01.JPG]
3. Я ошибся. Это не просто поле формы. Это всё-таки, реквизит ВидОплатыСпр. Его и заполняйте.

PS. Реквизит ВидОплаты в самом документе не используется и даже не заполняется, походу.



Исправлено 1 раз(а). Последнее : pasha_usue, 20.09.19 09:08
Ratings: 0 negative/0 positive
Re: VFP+1C, второй шаг
Vedmak
Автор

Сообщений: 5949
Откуда: CiTY
Дата регистрации: 30.10.2003
pasha_usue
PS. Реквизит ВидОплаты в самом документе не используется и даже не заполняется, походу.

Не соглашусь: joxi.ru

pasha_usue
2. Перечисление ВидыОплаты определено в конфигурации ниже:

Да, в конфигурации описано, но по факту используется нечто другое.

pasha_usue
3. Я ошибся. Это не просто поле формы. Это всё-таки, реквизит ВидОплатыСпр. Его и заполняйте.

Я не наблюдаю этого реквизита в описании шапки документа. Может он скрыт? Даже если и так, то пока не пойму как найти источник того, что отрывается на форме.


------------------
Говорить стоит лишь для тех, кто слушает.




Исправлено 1 раз(а). Последнее : Vedmak, 20.09.19 11:25
Ratings: 0 negative/0 positive
Re: VFP+1C, второй шаг
pasha_usue

Сообщений: 3647
Откуда: Е-бург
Дата регистрации: 06.10.2006
Vedmak
pasha_usue
PS. Реквизит ВидОплаты в самом документе не используется и даже не заполняется, походу.
Не соглашусь: joxi.ru
А зря:
[attachment 31949 1c_vedmak_03.JPG]

Vedmak
pasha_usue
2. Перечисление ВидыОплаты определено в конфигурации ниже:
Да, в конфигурации описано, но по факту используется нечто другое.
Я уже написал, что конкретно другое.

Vedmak
pasha_usue
3. Я ошибся. Это не просто поле формы. Это всё-таки, реквизит ВидОплатыСпр. Его и заполняйте.
Я не наблюдаю этого реквизита в описании шапки документа. Может он скрыт? Даже если и так, то пока не пойму как найти источник того, что отрывается на форме.
Пятый снизу:
[attachment 31950 1c_vedmak_02.JPG]



Исправлено 1 раз(а). Последнее : pasha_usue, 20.09.19 12:01
Ratings: 0 negative/0 positive
Re: VFP+1C, второй шаг
pasha_usue

Сообщений: 3647
Откуда: Е-бург
Дата регистрации: 06.10.2006
Vedmak
pasha_usue
PS. Реквизит ВидОплаты в самом документе не используется и даже не заполняется, походу.
Не соглашусь: joxi.ru
А вообще, я по коду формы смотрел. Тот единственный участок кода, где встречается ВидОплаты использовался на время переходного периода, когда документ переводили с перечисления на справочник. И это было в 2009 году.
Ratings: 0 negative/0 positive
Re: VFP+1C, второй шаг
Vedmak
Автор

Сообщений: 5949
Откуда: CiTY
Дата регистрации: 30.10.2003
pasha_usue
А зря:
[attachment 31949 1c_vedmak_03.JPG]

А где я это увижу в моей конфигурации ?


------------------
Говорить стоит лишь для тех, кто слушает.
Ratings: 0 negative/0 positive
Re: VFP+1C, второй шаг
pasha_usue

Сообщений: 3647
Откуда: Е-бург
Дата регистрации: 06.10.2006
Vedmak
pasha_usue
А зря:
[attachment 31949 1c_vedmak_03.JPG]

А где я это увижу в моей конфигурации ?
[attachment 31953 1c_vedmak_04.JPG]
Ratings: 0 negative/0 positive
Re: VFP+1C, второй шаг
Vedmak
Автор

Сообщений: 5949
Откуда: CiTY
Дата регистрации: 30.10.2003
Боюсь это визуальный элемент формы. И прямую связь со справочником не усматриваю.


------------------
Говорить стоит лишь для тех, кто слушает.
Ratings: 0 negative/0 positive
Re: VFP+1C, второй шаг
pasha_usue

Сообщений: 3647
Откуда: Е-бург
Дата регистрации: 06.10.2006
Vedmak
Боюсь это визуальный элемент формы. И прямую связь со справочником не усматриваю.
Нет.
Ratings: 0 negative/0 positive
Re: VFP+1C, второй шаг
Vedmak
Автор

Сообщений: 5949
Откуда: CiTY
Дата регистрации: 30.10.2003
joxi.ru Все же это ID поля на форме. Несмотря на успешное обнаружение значения в справочнике функция loDir.ТекущийЭлемент() возвращает 0.


------------------
Говорить стоит лишь для тех, кто слушает.




Исправлено 1 раз(а). Последнее : Vedmak, 25.09.19 08:21
Ratings: 0 negative/0 positive
Re: VFP+1C, второй шаг
Vedmak
Автор

Сообщений: 5949
Откуда: CiTY
Дата регистрации: 30.10.2003
pasha_usue
Нет.

Ты был прав.


------------------
Говорить стоит лишь для тех, кто слушает.
Ratings: 0 negative/0 positive
Re: VFP+1C, второй шаг
pasha_usue

Сообщений: 3647
Откуда: Е-бург
Дата регистрации: 06.10.2006
Vedmak
pasha_usue
Нет.

Ты был прав.
Спасибо за обратную связь. Это мотивирует в будущем.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 8 (Гостей: 8)

© 2000-2024 Fox Club 
Яндекс.Метрика