Имя: Пароль:
1C
1С v8
Как программно добавить данные в РегистрыНакопления?
,
0 Kamich
 
28.03.13
15:03
Добрый день.
Как программно добавить данные в в РегистрНакопления.
P.S. Не из Документа, а из "Обработки".

Пишу такую процедуру выводит ошибку:
   Движения=РегистрыНакопления.Продажи.СоздатьНаборЗаписей();
   Движения1=Движения.Добавить();
   Движения1.Период = ТекущаяДата();
   Движения1.Номенклатура=Наименование;
   Движения1.Количество=Количество;
   Движения1.Сумма=Сумма;
1 Naumov
 
28.03.13
15:04
нам отгадать ошибку?
регистратор где?
2 andreymongol82
 
28.03.13
15:05
Движения1.Регистратор = <Какой-то документ>
Хотя зачем такая обработка?
3 Kamich
 
28.03.13
15:09
(2) Регистр должен быть обязательно Документом,а справочник -товары пройдет?:
4 kosts
 
28.03.13
15:09
Должны быть заполнены все измерения
5 andreymongol82
 
28.03.13
15:10
(3) Нет не подойдет. У РН регистратор толлько документ
6 spiller26
 
28.03.13
15:11
(3) Блин какой Справочник. Посмотри у данного РН какие регистраторы.
7 andreymongol82
 
28.03.13
15:11
(0) Кстати, кто отбор будет делать?
8 Bigcalm
 
28.03.13
15:13
НаборЗаписей = ДокОбъект.Движения.Регистр
НаборЗаписей.Прочитать();
НоваяСтрока = НаборЗаписей.Добавить()
НоваяСтрока.блабла = блабла
...
НаборЗаписей.Записать()
9 spiller26
 
28.03.13
15:14
(0) Что нужно то в общем, забить начальные данные в РН или что?
10 Kamich
 
28.03.13
15:18
(9) В общем идея такая.
Есть Справочник Продукт.
Есть Документ Установить цены(которые устанавливает цены в РегистрыСведений);
Есть Документ Поступление(РегистрысВедений.Продажи);

Есть обработка, где идет выбор товара(Справочники.Продукт), так же цена,количество, сумма.
По идеи после нажатия по кнопке в форме Обработки "ПРОДАТЬ",то данные поступают в РегистрыСведений.Продажи.Расход.

Все ли правильно идет, туда ли данные должны поступать в этом случае?!
11 mikecool
 
28.03.13
15:20
"Есть Документ Поступление(РегистрысВедений.Продажи); " - это к 1 апрелю готовишься?
12 mikecool
 
28.03.13
15:21
(10) по кнопке сделай заполнение пдокумента продажи и автопроведение его и не думай ни о чем больше
13 scanduta
 
28.03.13
15:21
(0) Задача неправильно поставлена изначально. Если тебе нужно сделать такой изврат . ТО можешь указать в качестве регистратора документ, являющийся регистратором для этого регистра. Движения добавятся но при перепроведении затруться

Правильный вариант:

Формируй программно доккумент поступление и  проводи его , движения в таком случае сами сформируются и все будет в шоколаде
14 palpetrovich
 
28.03.13
15:25
Kamich, это часом не нетленка?  конфигурация реальная или "почиться"?
15 Kamich
 
28.03.13
15:26
(12) (13) В Документе Поступления движения,сформулированы программно.
Но вот в обработке вы предлагается сделать это по кнопке, могли привести пример.
И в общем схема поступления-продажи верна?
16 Kamich
 
28.03.13
15:26
(14) Самописка
17 mikecool
 
28.03.13
15:27
(15) какая схема? не увидел никакой схемы, сплошной набор букв
18 Kamich
 
28.03.13
15:29
(17) Схема--> (10)
19 palpetrovich
 
28.03.13
15:30
(15) программно в обработке примерно так
НовыйОбъектПоступление = Документы["Поступление"].СоздатьДокумент();
// заполняешь все реквизиты
НовыйОбъектПоступление.Записать(РежимЗаписиДокумента.Проведение);
20 scanduta
 
28.03.13
15:31
(18) читай (13) там написано что вместо движений програмно надо формировать документ и проводить его движения в таком случае сами сформируются и все будет в шоколаде
21 hhhh
 
28.03.13
15:32
(18) в документе Поступление товары поступают к нам. А продажи это совсем наоборот. Товары уходят.

Поэтому непонятно в скобках

Документ Поступление(РегистрысВедений.Продажи);
22 andreymongol82
 
28.03.13
15:34
(16) Посмотри в типовой документ реализацияТоваровУслуг, Формируй его программно, будь мужиком
23 Kamich
 
28.03.13
15:36
(22) Все дело в том,что кнопка ПРОДАТЬ расположена в "Обработки.Форма".
24 Lex2k2k
 
28.03.13
15:36
(2)  не прав, но мысль в правильном направлении.
НЕ
       Движения1.Регистратор = <Какой-то документ>
А
       Движения.Отбор.Регистратор.Установить(<Сылка на Какой-то документ>);
       Движения.Прочитать();
И уже после
       Движения1 = Движения.Добавить();
25 Kamich
 
28.03.13
15:36
(22) Я же уже писал
26 Lex2k2k
 
28.03.13
15:36
Движения.Отбор.Регистратор.Установить(<Сылка на Какой-то документ>, Истина - забыл);
27 Kamich
 
28.03.13
15:39
(26) Или мне лучше это все пихать в регистрыбухгалтерии?

По кнопке ПРОПЛАТИТЬ я еще ни разу не делал,ведь это кнопка находится не в форме Документа,а форме Обработки
28 palpetrovich
 
28.03.13
15:40
(27) тебе по-ходу еще рано пихать ...без обид
29 Kamich
 
28.03.13
15:41
(28) Я не профи.
Ведь каждый из Вас был таким же. Поэтому, если вы имеете опыт. То лучше подскажите, не то зачем Вы тут?!Простите,за грубость
30 andreymongol82
 
28.03.13
15:41
(24) В (7) я как раз об этом и спрашивал ТС
31 Maxus43
 
28.03.13
15:41
вот смеётесь, смеётесь, а вырастет 2-й Маня и всё, мерседесы, милионы... а вы так и будете дальше утт смеятсья...)
32 Lex2k2k
 
28.03.13
15:41
(27) Блин, ну вот твой код:
   Движения=РегистрыНакопления.Продажи.СоздатьНаборЗаписей
();
   Движения.Отбор.Установить(<Ссылка на регистратор>,Истина);
   Движения.Прочитать();

   Движения1=Движения.Добавить();
   Движения1.Период = ТекущаяДата();
   Движения1.Номенклатура=Наименование;
   Движения1.Количество=Количество;
   Движения1.Сумма=Сумма;
33 spiller26
 
28.03.13
15:42
(27) в РБ (РегистрыБухгалтерии) тоже регистраторы
34 Lex2k2k
 
28.03.13
15:43
Пардон
  Движения.Отбор.Регистратор.Установить(<Ссылка на регистратор>,Истина);

регистратор - в строке забыл
35 andreymongol82
 
28.03.13
15:43
(32) Движения1.Период = ТекущаяДата() - логичнее тут дату регистратора брать
36 hhhh
 
28.03.13
15:44
ну и номенклатуру тоже логично из регистратора.
37 andreymongol82
 
28.03.13
15:44
(29) Литература по 1С какая есть?
38 Maxus43
 
28.03.13
15:44
(29) Просто не путай помощь в вопросах, с которыми действительно не можешь разобраться, и то как ты тут обосновался и каждый час новая тема, по которым не было бы вопросов после прочтения книги того же радченко, с чего тут многие и начинали
39 Lex2k2k
 
28.03.13
15:46
(35) не спорю. У него скопировал.
Еще забыл Движения1.Активность = Истина;
40 Kamich
 
28.03.13
15:47
(38) Окей
41 Maxus43
 
28.03.13
15:48
(40) а лучше курсы в 1с пройти, сразу отпадут вопросов море.
Я тебя не выгоняю отсюда, просто говорю почему такая реакция на такие темы
42 hhhh
 
28.03.13
15:48
(38) все повседневные события из нашей жизни в 1С отражаются документами. Приняли тебя на работу - это документ приема, уволили - документ увольнения, напился пьяный - документ выговор.

Обработки - это просто для удобства, работа с документами.
43 hhhh
 
28.03.13
15:49
(42) к (40)
44 Kamich
 
28.03.13
15:49
(37) М.Г.Радченко
45 Kamich
 
28.03.13
15:52
(39) Все правильно?  Движения=РегистрыНакопления.Продажи.СоздатьНаборЗаписей();
   Движения.Отбор.Регистратор.Установить(Документы.ПоступлениеТовара,Истина);
   Движения.Прочитать();
   Движения1=Движения.Добавить();
   Движения1.Период = ТекущаяДата();
   Движения1.Активность = Истина;
   Движения1.Номенклатура=Наименование;
   Движения1.Количество=Количество;
   Движения1.Сумма=Сумма;
   Движения.Записать();
46 Lex2k2k
 
28.03.13
15:53
(45) Да, как то так
47 scanduta
 
28.03.13
15:54
(45) Еще раз скажу не делай движения  в РН программно, это неправильный метод..... Но потом сам на своих ошибках научишся
48 andreymongol82
 
28.03.13
15:54
(45) Почти
Только вот "Документы.ПоступлениеТовара" это что?
49 scanduta
 
28.03.13
15:54
Все движения по РН и РБ и РР должны идти от документа
50 andreymongol82
 
28.03.13
15:55
(45) Еще вид движения забыл. так что не взлетит
51 Kamich
 
28.03.13
15:55
(46) Выводит ошибку
52 andreymongol82
 
28.03.13
15:56
(51) см. (48) (50)
53 andreymongol82
 
28.03.13
15:56
(49) Скажи это "Корректировке записей регистров" ;)
54 Kamich
 
28.03.13
15:58
(52) (50)
Значит через кнопку он должен создавать документ Расход,и вносить записи в РегистрыНакоплений?
55 Lex2k2k
 
28.03.13
15:58
(51) Какую?
56 scanduta
 
28.03.13
15:59
(54) Именно
57 andreymongol82
 
28.03.13
15:59
(44) Ее надо читать, а не под монитор подкладывать.
(54) ДА! Создается документ расход, записывается в редиме проведение, документ расхода делает движения.
58 Lex2k2k
 
28.03.13
15:59
(48) Да, кстати. "Документы.ПоступлениеТовара" Это что? какого типа? и еслть ли этот тип в регистраторах регистра?
59 scanduta
 
28.03.13
15:59
Причем через "обработку проведения" документа
60 Kamich
 
28.03.13
16:00
(56) ...Получает через СоздатьДокумент,Записать,Провести,Такая схема?
61 Serginio1
 
28.03.13
16:00
Нужно добавить значение пролей
Процедура УстановитьДопЗначенияРегистров(Тз,Регистратор,ВидДвижения="") Экспорт
   Тз.ЗаполнитьЗначения(Регистратор.Дата,"Период");
   Тз.ЗаполнитьЗначения(Регистратор,"Регистратор");
   Тз.ЗаполнитьЗначения(истина,"Активность");
   Если ВидДвижения="" Тогда
       Тз.ЗаполнитьЗначения(ВидДвиженияНакопления.Расход,"ВидДвижения");
   Иначе
       Тз.ЗаполнитьЗначения(ВидДвижения,"ВидДвижения");
   КонецЕсли;
   Тз.ЗаполнитьЗначения(Регистратор.МоментВремени(),"МоментВремени");
   
КонецПроцедуры
62 Kamich
 
28.03.13
16:02
(58) Да ,Документы.ПоступлениеТовара является регистратор в РегистрыНакопления.Продажа.
Получается мне нужно создать новый документ Что -то типа Документы.Торговля, и по нажатии по кнопки создается документ в Документ.Торговля и вносятся записи в РегистрыНакопления.Продажа?
63 Lex2k2k
 
28.03.13
16:02
39) Все правильно?  Движения=РегистрыНакопления.Продажи.СоздатьНаборЗаписей();
   Движения.Отбор.Регистратор.Установить(Документы.ПоступлениеТовара  -  тут должна быть ссылка на существующий документ регистратор (его тип должен быть в списке регистраторов регистра) ,Истина);
   Движения.Прочитать();
   Движения1=Движения.Добавить();
   Движения1.Период = ТекущаяДата();
   Движения1.Активность = Истина;
   Движения1.Номенклатура=Наименование;
   Движения1.Количество=Количество;
   Движения1.Сумма=Сумма;
   Движения.Записать(Истина);  - Истину не забудь, а то не перезапишется.
64 Lex2k2k
 
28.03.13
16:03
(62) Естественно.
65 Lex2k2k
 
28.03.13
16:06
(62) у тебя будет ссылка на докумен.
Еще (если ты его создаешь) тебе надо его        ДокОбъект.Записать(РежимЗаписиДокумента.Проведение);
66 Kamich
 
28.03.13
16:06
(64) Понятно...
Ладно Всем спасибо,
P.s.Поймите я начинающий в программировании 1С и для меня на данный момент это целый океан)
67 Lex2k2k
 
28.03.13
16:07
ДокОбъект - для Установить( преобразовать естественно в ссылку
68 Kamich
 
28.03.13
16:07
Всем спасибо за терпение)))