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

Хранилище

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

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



> Набор записей регистра не отбирает по регистратору          
olegzt Подменю пользователя
сообщение 03.04.13, 16:45
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 19
Спасибо сказали: 0 раз
Рейтинг: 0

В модуле объекта док."ВВод в эксплуатацию" вызывается процедура заполнения подчиненного документа "ДвиженияУпрУчет"

УпрУчет.ВвводУпрДокаНаОсновании(ЭтотОбъект,) ;


В модуле подчиненного объекта док."ДвиженияУпрУчет" в процедуре "ОбработкаЗаполнения" вызывается набор записей документа-основания "ВВод в эксплуатацию" . Не понятно почему,но такое впечатление что отбор по регистратору "ввводу в эксплуатацию" не происходит, хотя проводки в нем есть.


Если ТипЗнч(ДокументОснование) = Тип("ДокументСсылка.ВводВЭксплуатациюОС") Тогда
       Набор = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
       Набор.Отбор.Регистратор.Установить(ДокументОснование);
       Набор.Прочитать();
       Для каждого Запись из Набор Цикл
           // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! СЮДА НЕ ЗАХОДИТ, проводки у документа основания есть
           СчетКТ = лев(Запись.СчетКт,2);
           Если СчетКТ =  "13" Тогда
           КонецЕСли;
       КонецЦикла;
      
   КонецЕсли;



АНАЛОГИЧНАЯ ТЕМА ПО ДОКУМЕНТУ "ЗАКРЫТИЕМЕСЯЦА" РАБОТАЕТ. подскажите кто может в чем может быть дело ?

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

logist Подменю пользователя
сообщение 03.04.13, 16:59
Сообщение #2

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

А стать отладчиком на Набор и посмотреть что там?


Signature
Личные бесплатные консультации не даю, для этого есть форум!

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

Общительный
**
Группа: Пользователи
Сообщений: 19
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(logist @ 03.04.13, 17:59) *
А стать отладчиком на Набор и посмотреть что там?


В наборе пусто..


 ! 

Правила, п.13
 


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

Сообщение отредактировал logist - 04.04.13, 10:25

pablo Подменю пользователя
сообщение 04.04.13, 10:32
Сообщение #4

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

А ДокументОснование заполнен? Там вполне может быть пустая ссылка


Signature
Правильно поставленный вопрос содержит до 90% ответа.

logist Подменю пользователя
сообщение 04.04.13, 10:34
Сообщение #5

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Я вот смотрю на вашу процедуру, а зачем этот маскарад? Не проще ли сразу запросом выбрать данные по нужному счету?


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Vofka Подменю пользователя
сообщение 04.04.13, 10:49
Сообщение #6

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

Цитата(logist @ 04.04.13, 11:34) *
Я вот смотрю на вашу процедуру, а зачем этот маскарад? Не проще ли сразу запросом выбрать данные по нужному счету?

Чем получение данных запросом, в данном случае, лучше?

logist Подменю пользователя
сообщение 04.04.13, 10:55
Сообщение #7

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(Vofka @ 04.04.13, 10:49) *
Чем получение данных запросом, в данном случае, лучше?

По сути дело не в запросе, запрос как вариант. Я смотрю процедура перебирает все данные регистратора, что бы найти только записи по одному счету, почему бы сразу не получить эти данные?
Про это:
Цитата
СчетКТ = лев(Запись.СчетКт,2);
Если СчетКТ = "13" Тогда

вообще молчу. понятно, что каждый пишет как умеет, но можно же как-то смотреть типовые вещи или читать книжки...

Сообщение отредактировал logist - 04.04.13, 10:58


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Домовик Подменю пользователя
сообщение 04.04.13, 11:06
Сообщение #8

Ветеран
Иконка группы
Группа: Местный
Сообщений: 975
Из: Киев
Спасибо сказали: 168 раз
Рейтинг: 0

отладчик до установки отбора покажет непустой набор наверняка, после - пустой. проверьте это.
ДокументОснование в отладчике - что?

Сообщение отредактировал Домовик - 04.04.13, 11:06

olegzt Подменю пользователя
сообщение 04.04.13, 11:39
Сообщение #9

Общительный
**
Группа: Пользователи
Сообщений: 19
Спасибо сказали: 0 раз
Рейтинг: 0

Не судите за убогий код - на 8 программирую недавно.

ДокументОснование передается через структуру и имеет тип ДокументСсылка.ВводВЭксплуатациюОС

Такой же точно код для ДокументСсылка.ЗакрытиеМесяца работает. Не пойму в чем дело. Вызывается процедура в обоих документах в конце "ОбработкиПроведения" .


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


=== а этот нет

Е
сли ТипЗнч(ДокументОснование) = Тип("ДокументСсылка.ВводВЭксплуатациюОС") Тогда
       основание =  ДокументОснование;

       Набор = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
       Набор.Отбор.Регистратор.Установить(ДокументОснование);
       Набор.Прочитать();
       Для каждого Запись из Набор Цикл
          
           СчетКТ = лев(Запись.СчетКт,2);
           Если СчетКТ =  "13" Тогда
           КонецЕСли;
       КонецЦикла;
      
   КонецЕсли;



 ! 

Правила, п.12!
 


Сообщение отредактировал logist - 04.04.13, 11:48

Домовик Подменю пользователя
сообщение 04.04.13, 11:51
Сообщение #10

Ветеран
Иконка группы
Группа: Местный
Сообщений: 975
Из: Киев
Спасибо сказали: 168 раз
Рейтинг: 0

тип значения - по условию видно, что проходит. а значение -? в табло в отладчике?


в регистре точно присутствуют записи этого документа?

logist Подменю пользователя
сообщение 04.04.13, 11:52
Сообщение #11

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(olegzt @ 03.04.13, 16:45) *
вызывается процедура заполнения подчиненного документа "ДвиженияУпрУчет"

Отвлеку от сути. А вы для бухгалтерской базы делаете отдельный документ который формирует управленческие движения? А если исходный документ меняется, подчиненный документ тоже меняется? У меня есть подозрение, что вы идете не правильным путем.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

olegzt Подменю пользователя
сообщение 04.04.13, 12:00
Сообщение #12

Общительный
**
Группа: Пользователи
Сообщений: 19
Спасибо сказали: 0 раз
Рейтинг: 0

" Документ основание" в отладчике получает весь документссылка.ВводВЭксплуатацию со всеми реквизитами. Операции-регистрыБухгалтерии показывает наличие движений по всем документам.
На основании первичных документов формируется управленческий документ "УпрДвижения". Он перезаполняется всякий раз после проведения первичного документа. В нем-то и не работает отбор
по списаниюТоваров и вводуВЭксплуатацию, но работает такой же код по ЗакрытиюМесяца. Причину пока понять не могу.

Домовик Подменю пользователя
сообщение 04.04.13, 12:08
Сообщение #13

Ветеран
Иконка группы
Группа: Местный
Сообщений: 975
Из: Киев
Спасибо сказали: 168 раз
Рейтинг: 0

в модуле формы обработки код отрабатывает, и если указать документОснование не из поля формы, а переменной?

совсем очумело - признак, что ВводВэксплуатацию - документ-основание вашего документа, где исполняется код, снимите на время.

Сообщение отредактировал Домовик - 04.04.13, 12:14

olegzt Подменю пользователя
сообщение 04.04.13, 13:25
Сообщение #14

Общительный
**
Группа: Пользователи
Сообщений: 19
Спасибо сказали: 0 раз
Рейтинг: 0

Присваивал переменную=ДокументОснование, снимал признак ввода на основании, результата нет.
Можеть быть выбрать проводки докмуента запросом с отбором по регистратору будет выход из положения. Попробую.

Вопрос модифицировался )

       НаборЗаписейБУ = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
       НаборЗаписейБУ.Отбор.Регистратор.Использование = Истина;
       НаборЗаписейБУ.Отбор.Регистратор.Значение = ЭтотОбъект.Ссылка;

       НаборЗаписейБУ.Прочитать();
       Для каждого Запись из НаборЗаписейБУ Цикл

       КонецЦикла;


вот такой код дает обход проводок в ОбработкеПроведения (в конце процедуры) в документе "ЗакрытиеМесяца". А в "ВводВЭксплуатацию" не дает. В обоих документах есть проводки. В чем может быть дело ?

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

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(olegzt @ 04.04.13, 13:25) *
В чем может быть дело ?

А на момент начала этих действий - движения уже есть в регистре? Отладчиком там станьте и посмотрите Движения.Хозрасчетный


Signature
Личные бесплатные консультации не даю, для этого есть форум!

olegzt Подменю пользователя
сообщение 04.04.13, 15:13
Сообщение #16

Общительный
**
Группа: Пользователи
Сообщений: 19
Спасибо сказали: 0 раз
Рейтинг: 0

Движения документа основания есть-но поле "регистратор" пустое до самого конца процедуры "ОбработкаПроведения". Удалось перебрать проводки документа основания с отбором по регистратору только по кнопке
"Заполнить" в подчиненном документе "УпрУчетДвижения". Даже в процедуре "ПриОткрытии" УпрУчет не удается этого сдлеать. Прийдется наверное заполнять по кнопке.

logist Подменю пользователя
сообщение 04.04.13, 15:24
Сообщение #17

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(olegzt @ 04.04.13, 15:13) *
Движения документа основания есть-но поле "регистратор" пустое до самого конца процедуры "ОбработкаПроведения".

ну так перебирайте движения из таблицы Движения.Хозрасчетный, только в конце и сначала проверьте на Отказ


Signature
Личные бесплатные консультации не даю, для этого есть форум!

olegzt Подменю пользователя
сообщение 04.04.13, 16:42
Сообщение #18

Общительный
**
Группа: Пользователи
Сообщений: 19
Спасибо сказали: 0 раз
Рейтинг: 0

Спасибо, попробую.

Передаю в подчиненный документ Движения.Хозрасчетный.выгрузить()
Все получается, большое спасибо !

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


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

 

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