Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
16 Дек 2017, 10:30
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Проведение документа  (Прочитано 1804 раз)

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

Оффлайн newprog

  • *
  • Сообщений: 3
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-06-13
  • Сайт: 
  • Профессия: Ученик 1С
Добрый день.
Задали такую задачку:
1. Есть Справочник.Реактивы
2. Документы.Анализы, в табличной части Реактивы и Количество (документ просто записывается, движения по остаткам не производит)
3. Документы.Расход, в табличной части - ДокументСсылка.Анализы и КолАнализы (производит движение по остаткам)

Сделал обработку проведения:
Процедура ОбработкаПроведения(Отказ, Режим)

Для Каждого ТекСтрокаТабДок Из ТабДок Цикл
   
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Анализы.Реактивы.(
| Реактивы,
| Количество
| )
|ИЗ
| Документ.Анализы КАК Анализы";

Результат = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = Результат.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Движения.ОстаткиРеактивов.Записывать = Истина;
Движение = Движения.ОстаткиРеактивов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Количество = ТекСтрокаТабДок.КолАнализы * Выборка.Количество;
Движение.Реактивы = Выборка.Реактивы;
КонецЦикла;
    КонецЦикла;

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

Документ "проводится", ошибок не выдает, но и движения по остаткам не происходит.
1с Предприятие 8.2


Оффлайн GRADUS

  • *****
  • Сообщений: 699
  • РЕПУТАЦИЯ: 51
  • КПД: 7%
  • Регистрация: 2013-06-08
  • Сайт: 
  • Профессия: Программист 1С
Что конкретно там делает ТабДок и запрос?

Оффлайн DmitriyF

  • *****
  • Сообщений: 729
  • РЕПУТАЦИЯ: 48
  • КПД: 7%
  • Регистрация: 2013-03-18
  • Сайт: 
  • Профессия: Разработчик 1С
Добрый день.
Задали такую задачку:
1. Есть Справочник.Реактивы
2. Документы.Анализы, в табличной части Реактивы и Количество (документ просто записывается, движения по остаткам не производит)
3. Документы.Расход, в табличной части - ДокументСсылка.Анализы и КолАнализы (производит движение по остаткам)

Сделал обработку проведения:
Процедура ОбработкаПроведения(Отказ, Режим)

Для Каждого ТекСтрокаТабДок Из ТабДок Цикл
   
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Анализы.Реактивы.(
| Реактивы,
| Количество
| )
|ИЗ
| Документ.Анализы КАК Анализы";

Результат = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = Результат.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Движения.ОстаткиРеактивов.Записывать = Истина;
Движение = Движения.ОстаткиРеактивов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Количество = ТекСтрокаТабДок.КолАнализы * Выборка.Количество;
Движение.Реактивы = Выборка.Реактивы;
КонецЦикла;
    КонецЦикла;

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

Документ "проводится", ошибок не выдает, но и движения по остаткам не происходит.
1с Предприятие 8.2
Для чего запрос если и так уже таблицу по циклу обходите? И естественно ищем ошибку в запросе.

Оффлайн andryscha92

  • ****
  • Сообщений: 267
  • РЕПУТАЦИЯ: 4
  • КПД: 1%
  • Регистрация: 2012-01-31
  • Сайт: 
  • Профессия: Программист 1С
в цикле использовать запрос - плохое правило. Выберите все нужные данные запросом и загрузите в регистр ОстаткиРеактивов.

Оффлайн Snaky

  • **
  • Сообщений: 50
  • РЕПУТАЦИЯ: 5
  • КПД: 10%
  • Регистрация: 2014-06-18
  • Сайт: 
  • Профессия: Программист 1С
Добрый день.
Задали такую задачку:
1. Есть Справочник.Реактивы
2. Документы.Анализы, в табличной части Реактивы и Количество (документ просто записывается, движения по остаткам не производит)
3. Документы.Расход, в табличной части - ДокументСсылка.Анализы и КолАнализы (производит движение по остаткам)

Сделал обработку проведения:
Процедура ОбработкаПроведения(Отказ, Режим)

Для Каждого ТекСтрокаТабДок Из ТабДок Цикл
   
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Анализы.Реактивы.(
| Реактивы,
| Количество
| )
|ИЗ
| Документ.Анализы КАК Анализы";

Результат = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = Результат.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Движения.ОстаткиРеактивов.Записывать = Истина;
Движение = Движения.ОстаткиРеактивов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Количество = ТекСтрокаТабДок.КолАнализы * Выборка.Количество;
Движение.Реактивы = Выборка.Реактивы;
КонецЦикла;
    КонецЦикла;

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

Документ "проводится", ошибок не выдает, но и движения по остаткам не происходит.
1с Предприятие 8.2
Запрос возвращает то что Вам нужно???

Оффлайн wise

  • ****
  • Сообщений: 428
  • РЕПУТАЦИЯ: 58
  • КПД: 14%
  • Кто сгорел, того не подожжешь
  • Регистрация: 2013-03-21
  • Сайт: 
  • Профессия: Ученик 1С
ошибок не выдает
ВОТ ошибка: {Выборка.Количество}
ОТКУДА программа знает, что такое {"Выборка"} ??
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

Оффлайн newprog

  • *
  • Сообщений: 3
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-06-13
  • Сайт: 
  • Профессия: Ученик 1С
Все оказалось проще:
&НаСервере
Процедура ОбработкаПроведения(Отказ, Режим)

Для Каждого ТекСтрокаТабДок Из ТабДок Цикл

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| АнализыРеактивы.Реактивы КАК Реактивы,
| АнализыРеактивы.Количество КАК Количество
|ИЗ
| Справочник.Анализы.ТабДок КАК АнализыРеактивы
            |ГДЕ ссылка = &Спр";                                   
Запрос.УстановитьПараметр("Спр", ТекСтрокаТабДок.Анализы);
Результат = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = Результат.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Движение = Движения.ОстаткиРеактивов.ДобавитьРасход();
Движение.Период = Дата;
Движение.Количество = ТекСтрокаТабДок.КолАнализы * ВыборкаДетальныеЗаписи.Количество;
Движение.Реактивы = ВыборкаДетальныеЗаписи.Реактивы;

КонецЦикла;

КонецЦикла;
   
КонецПроцедуры

 

Анализы сделал в виде справочника.

Оффлайн GRADUS

  • *****
  • Сообщений: 699
  • РЕПУТАЦИЯ: 51
  • КПД: 7%
  • Регистрация: 2013-06-08
  • Сайт: 
  • Профессия: Программист 1С
Все оказалось проще:
&НаСервере
Процедура ОбработкаПроведения(Отказ, Режим)

Для Каждого ТекСтрокаТабДок Из ТабДок Цикл

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| АнализыРеактивы.Реактивы КАК Реактивы,
| АнализыРеактивы.Количество КАК Количество
|ИЗ
| Справочник.Анализы.ТабДок КАК АнализыРеактивы
            |ГДЕ ссылка = &Спр";                                   
Запрос.УстановитьПараметр("Спр", ТекСтрокаТабДок.Анализы);
Результат = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = Результат.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Движение = Движения.ОстаткиРеактивов.ДобавитьРасход();
Движение.Период = Дата;
Движение.Количество = ТекСтрокаТабДок.КолАнализы * ВыборкаДетальныеЗаписи.Количество;
Движение.Реактивы = ВыборкаДетальныеЗаписи.Реактивы;

КонецЦикла;

КонецЦикла;
   
КонецПроцедуры

 

Анализы сделал в виде справочника.

Еще раз, для чего тебе запрос, что конкретно ты от него хочешь?
П.С. Запросы в циклах делать запрещено.
Добавлено: 06 Июл 2014, 05:39

Короче, нет времени объяснять, пиши так:

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

Есть разница?
Добавлено: 06 Июл 2014, 05:41

И откуда там взялась директива
&НаСервере
???

Оффлайн newprog

  • *
  • Сообщений: 3
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-06-13
  • Сайт: 
  • Профессия: Ученик 1С
Короче, нет времени объяснять, пиши так:
&НаСервере
Процедура ОбработкаПроведения(Отказ, Режим)
           
    Для Каждого ТекСтрокаТабДок Из ТабДок Цикл
            Движение = Движения.ОстаткиРеактивов.ДобавитьРасход();
            Движение.Период = Дата;
            ЗаполнитьЗначениеСвойств(Движение,ТекСтрокаТабДок.Анализы);
    КонецЦикла;
       
КонецПроцедуры

Есть разница?
Есть, движение по остаткам реактивов не происходит.

И откуда там взялась директива
&НаСервере
???
А вот без этого тоже работает )

1С только начал изучать, поэтому многое делаю конструкторами и не до конца понимаю некоторые части кода.

П.С. запрос перебирает табличную часть Справочник.Анализы, которые указаны в Документы.Расход.

Оффлайн GRADUS

  • *****
  • Сообщений: 699
  • РЕПУТАЦИЯ: 51
  • КПД: 7%
  • Регистрация: 2013-06-08
  • Сайт: 
  • Профессия: Программист 1С
Есть, движение по остаткам реактивов не происходит.

Ахринеть как сложно "Количество" добавить ....


Теги:
 

Не открывает форму сохраненного документа, открывает форму нового.

Автор EHOTРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 4480
Последний ответ 13 Апр 2012, 23:26
от Vit1501
Автоматическое заполнение табличной части документа из табличной части другого

Автор WillРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 15943
Последний ответ 16 Авг 2012, 12:07
от Will
Заполнение поля табличной части документа из табличной части справочника.

Автор Kurt_WagnerРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 4201
Последний ответ 06 Апр 2015, 20:08
от Kurt_Wagner
Заполнение табличной части документа реквизитами табличной части справочника

Автор kaf_infoРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 638
Последний ответ 10 Май 2017, 20:44
от ilnur75
Добавление сведений в графу "основание" документа "ТОРГ-12"

Автор Ярослав1984Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 7749
Последний ответ 20 Авг 2013, 18:45
от Ярослав1984

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
154 Сообщений
ilyay ilyay
66 Сообщений
alex0402
53 Сообщений
AIFrame
47 Сообщений
oleg-x
44 Сообщений
andron81_81
44 Сообщений
BuhRust
33 Сообщений
MuI_I_Ika MuI_I_Ika
32 Сообщений
Golickoff Golickoff
31 Сообщений
Dima Dddd Dima Dddd
24 Сообщений

* Кто онлайн

  • Точка Гостей: 256
  • Точка Скрытых: 0
  • Точка Пользователей: 7
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal