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

Хранилище

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

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



> Получить значение реквизита из ДокументаОснования 2 страниц V   1 2 >          
ZhenyaYa Подменю пользователя
сообщение 02.10.12, 14:28
Сообщение #1

Завсегдатай
****
Группа: Пользователи
Сообщений: 105
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

Здравствуйте! Создаю документ Касса1, в который будут вытягиваться значения реквизитов с документов "РасходныйКассовый" и "ПриходныйКассовый" , которые в свою очередь создаются на основании ВедомостьПоКассе. У документа ВедомостьПоКассе есть реквизит "ЗаголовокПФ" типа Строка, который нужно вытянуть в тот же Касса1. То есть беру документ "РасходныйКассовый", вычисляю на основании какого документа "ВедомостьПоКассе" он создан, и с этого "ВедомостьПоКассе" должен вытянуть значение реквизита "ЗаголовокПФ".
Для этого создал в "РасходныйКассовый" реквизит "СсылкаНаДокОсн" типа Документ, в который передается ссылка на документ "ВедомостьПоКассе" на основании которого он создан.
В модуле Касса1 пишу :

Процедура Загрузка()
ВыборкаДокументов=СоздатьОбъект("Документ");
ВыборкаДокументов.ВыбратьДокументы(Дата1,Дата2);
Ном=1;
Пока ВыборкаДокументов.ПолучитьДокумент()=1 Цикл
    Если (ВыборкаДокументов.Вид()="РасходныйКассовый") ИЛИ (ВыборкаДокументов.Вид()="ПриходныйКассовый")  Тогда
    ТекущийДок=ВыборкаДокументов.ТекущийДокумент();
        Если ТекущийДок.Вид()="РасходныйКассовый" Тогда
        НоваяСтрока();    
        РасходСКА=ТекущийДок.СуммаВал;
        ДатаДокумента=ТекущийДок.ДатаДок;
        НомерДокумента=ТекущийДок.НомерДок;
        ОснованиеНаДвижение=ТекущийДок.Основание;
        Аналитика=ТекущийДок.Субконто.Наименование;

        ДокументОснование=ТекущийДок.СсылкаНаДокОсн;
        НомерДокумент=ДокументОснование.НомерДок;
        ВидДокумент=ДокументОснование.Вид();
        ЗаголовокП=ДокументОснование.ЗаголовокПФ;
        Сообщить(НомерДокумент);
        Сообщить(ВидДокумент);
        Сообщить(ЗаголовокП);
        Ном=Ном+1;

    Иначе
        НоваяСтрока();    
        ПриходВКА=ТекущийДок.СуммаВал;
        ДатаДокумента=ТекущийДок.ДатаДок;
        НомерДокумента=ТекущийДок.НомерДок;
        ОснованиеНаДвижение=ТекущийДок.Основание;
        Аналитика=ТекущийДок.ПринятоОт;
        
        
        Ном=Ном+1;
        КонецЕсли;
    КонецЕсли;    
КонецЦикла
КонецПроцедуры


НомерДокумента и Вид вытягивает, ЗаголовокП и Остальные реквизиты шапки нет. Что я не так сделал?

Сообщение отредактировал logist - 02.10.12, 14:51

mister-x Подменю пользователя
сообщение 02.10.12, 14:53
Сообщение #2

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1417 раз
Рейтинг: 0

конфа самописна?

Vofka Подменю пользователя
сообщение 02.10.12, 14:54
Сообщение #3

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

Цитата(mister-x @ 02.10.12, 15:53) *
конфа самописна?

Это в корне меняет суть дела?

mister-x Подменю пользователя
сообщение 02.10.12, 14:56
Сообщение #4

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1417 раз
Рейтинг: 0

Цитата(Vofka @ 02.10.12, 15:54) *
Это в корне меняет суть дела?

можлива оптимізація

Ardi Подменю пользователя
сообщение 02.10.12, 15:04
Сообщение #5

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Видимо это не реквизит документа.
Это реквизит формы. Его нельзя вытянуть.
Его нужно заполнить так-же как он заполняется при отображении формы документа основания.


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

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

mister-x Подменю пользователя
сообщение 02.10.12, 15:05
Сообщение #6

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1417 раз
Рейтинг: 0

а якщо це
ДокументОснование=ТекущийДок.СсылкаНаДокОсн;

так записати
ДокументОснование=ТекущийДок.СсылкаНаДокОсн.текущийДокумент();

або
...
НайтиДокумент(ТекущийДок.СсылкаНаДокОсн)
...

і тоді звертатись до реквізитів

або
Цитата(Ardi @ 02.10.12, 16:04) *
Это реквизит формы. Его нельзя вытянуть.

+1, поки писав, вже думку підхопили wink.gif

Сообщение отредактировал mister-x - 02.10.12, 15:07

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

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

Цитата(mister-x @ 02.10.12, 15:56) *
можлива оптимізація

А к поставленному вопросу это каким образом относится?

mister-x Подменю пользователя
сообщение 02.10.12, 16:08
Сообщение #8

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1417 раз
Рейтинг: 0

Цитата(Vofka @ 02.10.12, 16:21) *
А к поставленному вопросу это каким образом относится?

даешь разборки rulez.gif

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

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

Цитата(mister-x @ 02.10.12, 17:08) *
даешь разборки

Да нет, я просто хотел подсказать, что вы забыли спросить какой релиз платформы у автора, какая винда, СКЛ-ная ли база, ИНН, серию и номер паспорта.

Сообщение отредактировал Vofka - 02.10.12, 16:16

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

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

какая машина у директора, на какую сумму товаров на складе.


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

mister-x Подменю пользователя
сообщение 02.10.12, 16:29
Сообщение #11

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1417 раз
Рейтинг: 0

Цитата(Vofka @ 02.10.12, 17:14) *
Да нет, я просто хотел подсказать, что вы забыли спросить какой релиз платформы у автора, какая винда, СКЛ-ная ли база, ИНН, серию и номер паспорта.

і поофтопити wink.gif, моє питання було по суті

ZhenyaYa Подменю пользователя
сообщение 02.10.12, 19:51
Сообщение #12

Завсегдатай
****
Группа: Пользователи
Сообщений: 105
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

smile.gif

Цитата
Видимо это не реквизит документа.
Это реквизит формы. Его нельзя вытянуть.
Его нужно заполнить так-же как он заполняется при отображении формы документа основания.


в смысле реквизит формы? smile.gif да нет вродь, реквизит документа. Открываешь в конфигураторе документ, в одной колонке реквизиты шапки, в другой - реквизиты таб части, вот в первой колонке мои реквизиты, которые не вытягиваются smile.gif Заполняется этот ЗаголовокПФ руками...

Кстати, если таким же методом тянуть его с "РасходныйКассовый" , с процедуры ВводНаОсновании, то тянется

СсылкаНаДокОсн=ДокОсн.ТекущийДокумент();
ЗаголовокП=СсылкаНаДокОсн.ЗаголовокПФ;
Сообщить(ЗаголовокП);


А, и ошибка в первом варианте :

"ЗаголовокП=ДокументОснование.ЗаголовокПФ;
{Документ.KA1.Форма.Модуль(28)}: Поле агрегатного объекта не обнаружено (ЗаголовокПФ)"

и, не посчитайте меня за идиота, ну или посчитайте smile.gif , какая разница между реквизитом формы и реквизитом документа?


mister-x Подменю пользователя
сообщение 02.10.12, 20:48
Сообщение #13

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1417 раз
Рейтинг: 0

Цитата(ZhenyaYa @ 02.10.12, 20:51) *
какая разница между реквизитом формы и реквизитом документа?

перший в базі не зберігається; отже, потрібно відкрити конфіг і подивитися реквізити шапки і табл.част. дока ВедомостьПоКассе і подивитись чи є там ЗаголовокПФ

Сообщение отредактировал mister-x - 02.10.12, 20:49

ZhenyaYa Подменю пользователя
сообщение 02.10.12, 21:00
Сообщение #14

Завсегдатай
****
Группа: Пользователи
Сообщений: 105
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

Есть

И это не только с ВедомостьПоКассе такая проблема.
В документе "ПриходныйКассовый" есть реквизит "Заказ", куда помещается ссылка документа, на основании которого он был создан. Например, создан он на основании "РеализацияЖивотных", с которого хочу вытянуть значение реквизита табличной части "ТМЦ"

пишу
ДокументОснование=ТекущийДок.Заказ;
ПолучаемСтроку=ДокументОснование.ПолучитьСтрокуПоНомеру(1);
Номенклатура=ПолучаемСтроку.ТМЦ.Наименование;
Сообщить(Номенклатура);


ошибка та же ,
Номенклатура=ПолучаемСтроку.ТМЦ.Наименование;
{Документ.KA1.Форма.Модуль(44)}: Значение не представляет агрегатный объект (ТМЦ)


Опять же НомерДокумента, ДатаДокумента при этом вытягиваются

Cthulhu Подменю пользователя
сообщение 02.10.12, 21:15
Сообщение #15

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 224
Из: не ту страну назвали Гондурасом
Спасибо сказали: 83 раз
Рейтинг: 0

баттюшки-светы ужас то какой!
так ведь для получения реквизита таб.части - надо сначала спозиционироваться на строке, из которой этот реквизит надо дёрнуть.
в данном случае - спозиционироваться на той строке документа (ДокументОснование=ТекущийДок.СсылкаНаДокОсн;), по которой был свформирован (ТекущийДок). например, прямым перебором с проверкой некоего условия (соответствия строки таб.части) с прерыванием, типа
ДокументОснование.ВыбратьСтроки(); Пока ДокументОснование.ПолучитьСтроку()<>0
Цикл Если <По этой строке сформирован ТекущийДок> Тогда Прервать КонецЕсли КонецЦикла;
// и вот тут ЗаголовокП=ДокументОснование.ЗаголовокПФ; вернет вожделенное значение


Сообщение отредактировал Cthulhu - 02.10.12, 21:17

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

mister-x Подменю пользователя
сообщение 02.10.12, 21:24
Сообщение #16

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1417 раз
Рейтинг: 0

ДокументОснование=ТекущийДок.Заказ;
если ДокументОснование.КоличествоСтрок() > 0 тогда
ПолучаемСтроку=ДокументОснование.ПолучитьСтрокуПоНомеру(1);
...


а через
...
НайтиДокумент(ТекущийДок.СсылкаНаДокОсн)
...

пробували?

Сообщение отредактировал mister-x - 02.10.12, 21:25

ZhenyaYa Подменю пользователя
сообщение 02.10.12, 21:41
Сообщение #17

Завсегдатай
****
Группа: Пользователи
Сообщений: 105
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

баттюшки-светы ужас то какой!


Ну начнем с того что в первом примере я работаю не с табличной частью! То есть ничего позиционировать не нужно, но все равно не работает!
Во втором случае, когда я уже решил попытаться потянуть с табличной части , я спозиционировался
Цитата
ПолучаемСтроку=ДокументОснование.ПолучитьСтрокуПоНомеру(1);

...не работает


mister-x, да пытался, еще до того как на форум написал. Ошибка:
"НовДок=НайтиДокумент(ТекущийДок.Заказ);
{Документ.KA1.Форма.Модуль(42)}: Объект не может быть перепозиционирован!"

"Во втором случае, когда я уже решил попытаться потянуть с табличной части , я спозиционировался" - эти слова забираю обратно, там немного накорявил

mister-x Подменю пользователя
сообщение 02.10.12, 21:55
Сообщение #18

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1417 раз
Рейтинг: 0

відлагоджувач (отладчик) - подивитись, що дає СсылкаНаДокОсн і СсылкаНаДокОсн.ЗаголовокПФ, а також перевірити інші реквізити шапки док-ту СсылкаНаДокОсн

+ якщо не допоможе: вивантаж./завантаж. бази, тестування бази

Сообщение отредактировал mister-x - 02.10.12, 21:53

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

ZhenyaYa Подменю пользователя
сообщение 02.10.12, 22:03
Сообщение #19

Завсегдатай
****
Группа: Пользователи
Сообщений: 105
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

Ок, буду разбираться. Заранее спасибо

mister-x Подменю пользователя
сообщение 02.10.12, 22:18
Сообщение #20

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1417 раз
Рейтинг: 0

Цитата(ZhenyaYa @ 02.10.12, 22:00) *
В документе "ПриходныйКассовый" есть реквизит "Заказ", куда помещается ссылка документа, на основании которого он был создан.

в расх. кас. також таке є, в типовій конфі бух; якщо це така конфа, тоді
Цитата(ZhenyaYa @ 02.10.12, 15:28) *
Для этого создал в "РасходныйКассовый" реквизит "СсылкаНаДокОсн" типа Документ, в который передается ссылка на документ "ВедомостьПоКассе" на основании которого он создан.

в Заказ можна помістити документ "ВедомостьПоКассе" і нічого не потрібно добавляти, от до чого було це питання
Цитата(mister-x @ 02.10.12, 15:53) *
конфа самописна?



Сообщение отредактировал mister-x - 02.10.12, 22:26

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


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

 

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