Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 17:20

Не работает код из обработки проведения

Автор mrdil, 12 дек 2012, 13:23

0 Пользователей и 1 гость просматривают эту тему.

mrdil

Процедура ОбработкаПроведения()
Перем Кол;
Кол = 0;

ТЗ = СоздатьОбъект("ТаблицаЗначений");

ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку()=1 Цикл
Кол = Кол + 1;
КонецЦикла;

Регистр.Остаток.Оборудование= "" + Наименование;
Регистр.Остаток.Количество=Кол;
Регистр.Остаток.ДвижениеПриходВыполнить();

КонецПроцедуры

mrdil

При проведении документа в ресурс регистра "количество" должно плюсоваться значение равное количеству строк табличной части документа, однако этого не происходит. Что я неправильно делаю?

MuI_I_Ika

Наверное, еще нужен код, который будет заполнять таблицу. Пока вы просто создаете пустую таблицу и пытаетесь пробежаться по ней циклом.

mrdil

Цитата: MuI_I_Ika от 12 дек 2012, 13:45
Наверное, еще нужен код, который будет заполнять таблицу. Пока вы просто создаете пустую таблицу и пытаетесь пробежаться по ней циклом.

Таблица заполняется данными при формировании документа в режиме Предприятие, потом проводится документа. И в момент проведения должно количество строк посчитаться в таблице и приплюсоваться к количеству в регистре.

Herby

Цитата: mrdil от 12 дек 2012, 13:59Таблица заполняется данными при формировании документа в режиме Предприятие, потом проводится документа. И в момент проведения должно количество строк посчитаться в таблице и приплюсоваться к количеству в регистре.

она у вас пустая.

между
ТЗ = СоздатьОбъект("ТаблицаЗначений"); 

и между
ТЗ.ВыбратьСтроки(); 

у вас она не заполняется, поэтому пустая. а то что у вас в другом месте она заполняется, никого не колышет. методом СоздатьОбъект("ТаблицаЗначений") вы ее затираете и снова создаете, но уже пустую.

В школу вам надо)  изучать азы информатики)


start2000

Попробуйте так:


Процедура ОбработкаПроведения()

Регистр.Остаток.Оборудование = "" + Наименование;
Регистр.Остаток.Количество = КоличествоСтрок();
Регистр.Остаток.ДвижениеПриходВыполнить();

КонецПроцедуры

[/quote]

mrdil

Цитата: start2000 от 12 дек 2012, 15:25
Попробуйте так:


Процедура ОбработкаПроведения()

Регистр.Остаток.Оборудование = "" + Наименование;
Регистр.Остаток.Количество = КоличествоСтрок();
Регистр.Остаток.ДвижениеПриходВыполнить();

КонецПроцедуры


[/quote]

Спасибо большое. Короткий прямой ответ, который решил мою проблему.

Herby, информатика  не причем. 1С - специфичная область. Я к ней не имею отношения. Просто возникла задача по 1С, которую я сделаю и больше не прикоснусь к этой области вероятнее всего.

Herby

Цитата: mrdil от 12 дек 2012, 16:10Herby, информатика  не причем. 1С - специфичная область. Я к ней не имею отношения. Просто возникла задача по 1С, которую я сделаю и больше не прикоснусь к этой области вероятнее всего.

ничего специфичного здесь нет, обычный скриптовый язык на базе Visual Basic.

а информатика здесь действительно не причем, скорее арифметика.

Если А присвоить В
  (А:= В)

а потом присвоить С

  (А:= С)

то вопрос: чему теперь равно А?

Если эти простые вычисления переложить на Ваш код, то по Вашему мнению  А должна равняться именно В,
но тупой компьютер почему-то говорит что равно C.

Согласитесь, что бред, но в Вашем примере и в Вашем объяснении своей проблемы именно так и есть.

Поэтому я и написал про азы. Если к программированию имеете отношение, то стыдно такие вопросы задавать, а если же нет, то пусть эту задачу делают, те кто может, а то ваша фраза "Просто возникла задача по 1С, которую я сделаю" слишком самоуверенно звучит. Не Вы сделали, а Вам подсказали как сделать.


mrdil

Цитата: Herby от 12 дек 2012, 16:44
Цитата: mrdil от 12 дек 2012, 16:10Herby, информатика  не причем. 1С - специфичная область. Я к ней не имею отношения. Просто возникла задача по 1С, которую я сделаю и больше не прикоснусь к этой области вероятнее всего.

ничего специфичного здесь нет, обычный скриптовый язык на базе Visual Basic.

а информатика здесь действительно не причем, скорее арифметика.

Если А присвоить В
  (А:= В)

а потом присвоить С

  (А:= С)

то вопрос: чему теперь равно А?

Если эти простые вычисления переложить на Ваш код, то по Вашему мнению  А должна равняться именно В,
но тупой компьютер почему-то говорит что равно C.

Согласитесь, что бред, но в Вашем примере и в Вашем объяснении своей проблемы именно так и есть.

Поэтому я и написал про азы. Если к программированию имеете отношение, то стыдно такие вопросы задавать, а если же нет, то пусть эту задачу делают, те кто может, а то ваша фраза "Просто возникла задача по 1С, которую я сделаю" слишком самоуверенно звучит. Не Вы сделали, а Вам подсказали как сделать.


Цитата: Herby от 12 дек 2012, 16:44
Цитата: mrdil от 12 дек 2012, 16:10Herby, информатика  не причем. 1С - специфичная область. Я к ней не имею отношения. Просто возникла задача по 1С, которую я сделаю и больше не прикоснусь к этой области вероятнее всего.

ничего специфичного здесь нет, обычный скриптовый язык на базе Visual Basic.

а информатика здесь действительно не причем, скорее арифметика.

Если А присвоить В
  (А:= В)

а потом присвоить С

  (А:= С)

то вопрос: чему теперь равно А?

Если эти простые вычисления переложить на Ваш код, то по Вашему мнению  А должна равняться именно В,
но тупой компьютер почему-то говорит что равно C.

Согласитесь, что бред, но в Вашем примере и в Вашем объяснении своей проблемы именно так и есть.

Поэтому я и написал про азы. Если к программированию имеете отношение, то стыдно такие вопросы задавать, а если же нет, то пусть эту задачу делают, те кто может, а то ваша фраза "Просто возникла задача по 1С, которую я сделаю" слишком самоуверенно звучит. Не Вы сделали, а Вам подсказали как сделать.




То, что я здесь спросил, это лишь малая часть того, что я уже сделал по данной задаче. Я имею дело с программированием довольно давно - С, PHP. И поверьте, отличие ощутимое. Разработку конфигураций в 1С сложно назвать программированием, здесь просто надо знать принцип работы платформы. Слишком углубляться мне не нужно, поэтому попросил помощи. А Вы если такой умный, если уж не помогли, то оставьте свои умные мысли для своей работы.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск