Имя: Пароль:
1C
1С v8
доработка в УТ10.3 документа "ОприходованиеТоваров"
,
0 Jalib
 
27.11.16
18:56
Привет всем зашедшим на страницу!!!
надо в зависимости заполненности реквизита "инвентаризация" установить партионный документ в регистре "ПартииТоваровНаСкладах"
в модуле документа  "ОприходованиеТоваров" в процедуре ДвиженияПоРегистрамУпр
1)делаю проверку заполненности реквизита все ок
2)затем пишу
Движения.ПартииТоваровНаСкладах.Отбор.Регистратор=Движения.ПартииТоваровНаСкладах.Регистратор.Значение.ИнвентаризацияТоваровНаСкладе;
результат
пишет что поле регистратор не доступно для записи
Знаю что раз не работает значит не правильно
как написать правильно?
1 lucbak
 
27.11.16
19:17
Движения.ПартииТоваровНаСкладах.Отбор.Регистратор.Установить(ТУтПишешьСвойРегистратор);
2 lucbak
 
27.11.16
19:19
Хотя вообще странный какой-то код...Используй Запалнить(...
3 lucbak
 
27.11.16
19:23
Движения.ПартииТоваровНаСкладах.ЗаполнитьЗначения(Ссылка, "Регистратор");
4 Jalib
 
27.11.16
19:47
Движения.ПартииТоваровНаСкладах.Отбор.Регистратор.Установить(ИнвентаризацияТоваровНаСкладе);
1-вылетает из режима "1с предприятие" 2-пишет что метод объекта не обнаружен
5 lucbak
 
27.11.16
19:55
(4) Ибо метод действителен только для набора записи.
6 Jalib
 
27.11.16
19:57
как быть?
7 Джинн
 
27.11.16
19:59
Кагбе Регистратор - он и в африке регистратор. Это документ, выполнивший движение. К самим партиям он мало отношения имеет.
8 youalex
 
27.11.16
20:29
(6) Не маяться  с регистраторами, а смотреть где в проведении этого дока вызывается проведение по партиям - и туда условие втыкать. Интересна еще предыстория этой "доработки"
9 Либерал
 
27.11.16
21:35
(0) чета у вас там в датском королевстве все сложно - регистраторы подменять затеяли..
я вот помню вообще, там в 10.3 кажется именно по партиям регистр в доках пишется не через Движения.ПартииБлаБла, а через набор записей где то в общих модулях.. поэтому всё, что ты засунешь туда через Движения.Партии - потом просто затирается..
Точно не помню, но что то такое точно было
10 Jalib
 
28.11.16
09:01
(7)надо в зависимости заполненности реквизита "инвентаризация" установить реквизит-регистратор в движениях в регистре "ПартииТоваровНаСкладах"
(8)для меня трудно найти место куда вставить код
(9)да есть в общих модулях "Управление партиями партионный учет" там есть процедура "поступление товаров на склад" я сначала пробывал там что то дописать и поставить точку останова она при проведении не срабатывает поэтому я полез в модуль объекта документа "ОприходованиеТоваров"
11 FIXXXL
 
28.11.16
09:05
(10) бесстрашный разработчик

посмотрите для начала как там "партии" формируются и потом используются
хотя бы на примере доп.затрат на Поступление
12 catena
 
28.11.16
09:06
(10)А регистр съест этот регистратор?
13 Jalib
 
28.11.16
09:19
(11)по проще нельзя? я только изучаю 1с
14 craxx
 
28.11.16
09:34
(0) А причем тут вообще Движения?
Движения - они в конкретном документе, там отбор по регистратору вообще лишен смысла, ибо они и так в контексте объекта, который их двинул.
Тебе видимо Набор записей надо создать, а по нему уже отборы строить.
15 craxx
 
28.11.16
09:36
(14) Как-то так:

НЗ = РегистрыНакопления.ПартииТоваровНаСкладах.СоздатьНаборЗаписей();
НЗ.Отбор.Регистратор.Установить(....)...

И т.д.
16 FIXXXL
 
28.11.16
09:46
(13) а по профилю и не скажешь :)

посмотри какие движения в партии пишет документ доп.расходы
насколько помню УТ10, регистратор в РН Партии не является документом партию образующим, там измерение есть для этого
вот и пиши свою инвентаризацию в это измерение
только типы проверь сначала, сомневаюсь, что там Инвентаризация есть
17 Jalib
 
28.11.16
11:19
(15)так в НЗ попадут все записи этого регистра ,а мне нужно что бы только "Оприходования" потом уже изменять те записи где инвентаризация заполненна
(16)зарегистрировался давно 1с8 изучаю где то полгода
в свойствах реквизита
ДокументОприходования "инвентаризацию" добавил
пишу
Движения.ПартииТоваровНаСкладах.ДокументОприходования = ИнвентаризацияТоваровНаСкладах;
результат
поле ДокументОприходования не обнаружено
18 catena
 
28.11.16
11:29
(17)Патамучта движений у документа может быть много. Какому именно движению после этого кода должна присвоиться инвентаризация?
19 FIXXXL
 
28.11.16
11:33
Движения.ПартииТоваровНаСкладах - это коллекция

я бы поостерегся с таким уровнем курочить типовой партионный учет
20 Jalib
 
28.11.16
11:44
(9)ты прав это наверное делается не в модуле объекта"ОприходованияТоваровНаСкладах"
потому что
Процедура ЗаполнитьПоляПартииТоваровНаСкладах(ТаблицаТЧ, ТаблицаДвижений,СтруктураШапкиДокумента)

    ТаблицаТЧ.Индексы.Добавить("НомерСтроки");
    
    Для каждого СтрокаДвижений Из ТаблицаДвижений Цикл

        // Партионный учет по складам
        Если НЕ СтруктураШапкиДокумента.ВестиПартионныйУчетПоСкладам = Истина Тогда
            СтрокаДвижений.Склад       = Неопределено;
        КонецЕсли;
        СтрокаДвижений.СтатусПартии = Перечисления.СтатусыПартийТоваров.Купленный;
        Если Не мПорядокСписанияПартий.Упр = Перечисления.СпособыОценки.ПоСредней Тогда
////////доработка
        если ЗначениеЗаполнено(ИнвентаризацияТоваровНаСкладе)
            тогда
            сообщить(ИнвентаризацияТоваровНаСкладе);
            СтрокаДвижений.ДокументОприходования = ИнвентаризацияТоваровНаСкладе;
////////доработка
           иначе
            СтрокаДвижений.ДокументОприходования = ИнвентаризацияТоваровНаСкладе;
         конецесли;    
        КонецЕсли;

        // Если партионный учет по сериям не ведется, то надо очистить серию
        СтрокаТЧ = ТаблицаТЧ.Найти(СтрокаДвижений.НомерСтроки, "НомерСтроки");
        Если НЕ СтрокаТЧ.ВестиПартионныйУчетПоСериям Тогда
            СтрокаДвижений.СерияНоменклатуры = Неопределено;
        КонецЕсли;
        
    КонецЦикла;

КонецПроцедуры
результат
сообщение показывается верно,а в регистре ничего не меняется видно где то в другом модуле затирается
вопрос
где и как
21 Jalib
 
28.11.16
11:51
а нет извиняюсь не туда глянул, все заработало!!!спасибо всем
22 Jalib
 
28.11.16
12:07
а нельзя ли как то записывать инвентаризацию не в реквизит "ДокументОприходования",а в "Регистратор"?
что бы после проведения просматривая в документе движения документа в поле "Регистратор" тоже была инвентаризация?
23 catena
 
28.11.16
12:10
(22)Тогда это будут не движения оприходования, а движения инвентаризации...
24 Jalib
 
28.11.16
12:14
ну да так и надо
25 catena
 
28.11.16
12:52
(24) Так может тогда писать проведение в инвентаризации? Не очень красиво из одного документа проводить другой.
26 Jalib
 
28.11.16
13:32
такое домашнее задание. не  я его составлял)
27 alex1974
 
28.11.16
13:55
Инвентаризация не может быть регистратором в партиях товара при наличии документа оприходования. И документом оприходования тоже, если говорить в терминах УТ (УПП)
Так что налицо чисто методологическая ошибка.

Ну, и назначать регистратором документ, отличный от того, который делает движения, это не просто ересь, а... даже не знаю что.
Не знаю, можно ли это вообще сделать такое в платформе.
28 catena
 
28.11.16
14:10
Ну, прилепить движения к регистратору можно вообще обработкой. Другое дело, что не все хотелки нужно реализовывать.
29 craxx
 
28.11.16
14:12
(17) Так я тебе про отбор и нарисовал, чтобы ты отобрал только записи по нужному тебе регистратору, и потом НЗ.Прочитать() сделал.
30 Jalib
 
28.11.16
14:25
ну документом оприходывания получилось, в регистре показывается(плохо что принтскрин прикрепить к сообщению нельзя).
Оставлю пока так если скажут переделать буду переделывать
31 Jalib
 
28.11.16
15:14
где можно скачать файлы "бухгалтерии 3.0.36.18" .cf и демобазы - dt без номера телефона и других разводов
если кто видел скиньте ссылку или сюда
[email protected]
32 Jalib
 
29.11.16
08:39
все нашел!задание приняли.тему можно закрывать