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

помощь исправить ошибки!

Автор ildarik_58, 05 мар 2013, 11:19

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

ildarik_58

помогите пожалуйста исправить ошибки! надо сделать удобным список отбора план производства! и чтобы каждый заказ который находиться в плане производства при создании нового документа чтобы каждый заказ из плана создавался отдельным документов ! помогите исправить пожалуйста эти ошибки!

Yura063

Помогли, отблагодари!

ildarik_58

у меня в обработке! надо чтобы отбор за период был более удобным! а то когда я делаю отбор за период! выходит с форма возможностью выбора документов! а мне надо чтобы они сразу выводились списком на форме!  мне надо чтобы каждый заказ который есть в плане производства создавались отдельным документом, а не чтобы все заказы плана создаются 1 документом! вот код:

Процедура КнопкаВыполнитьНажатие(Кнопка)

Если ЭлементыФормы.НашиДокументы.Значение.Количество() = 0 Тогда
Возврат;
КонецЕсли;

Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Текст =
"ВЫБРАТЬ
| ПланыПроизводстваОбороты.Номенклатура,
| ПланыПроизводстваОбороты.ХарактеристикаНоменклатуры,
| ПланыПроизводстваОбороты.Заказ,
| ПланыПроизводстваОбороты.Спецификация,
| ПланыПроизводстваОбороты.КоличествоОборот КАК Количество,
| ПланыПроизводстваОбороты.Подразделение,
| ПланыПроизводстваОбороты.ДокументПланирования КАК Регистратор
|ПОМЕСТИТЬ ИсходныеДанные
|ИЗ
| РегистрНакопления.ПланыПроизводства.Обороты(, , Запись, ДокументПланирования В (&Регистратор)) КАК ПланыПроизводстваОбороты
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ИсходныеДанные.Регистратор,
| ИсходныеДанные.Номенклатура,
| ИсходныеДанные.ХарактеристикаНоменклатуры,
| ИсходныеДанные.Спецификация,
| ИсходныеДанные.Количество,
| ИсходныеДанные.Заказ,
| ИсходныеДанные.Подразделение,
| ОсновныеСпецификацииНоменклатурыСрезПоследних.СпецификацияНоменклатуры КАК ОсновнаяСпецификация
|ПОМЕСТИТЬ ТочныеСпецификации
|ИЗ
| ИсходныеДанные КАК ИсходныеДанные
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОсновныеСпецификацииНоменклатуры.СрезПоследних КАК ОсновныеСпецификацииНоменклатурыСрезПоследних
| ПО ИсходныеДанные.Номенклатура = ОсновныеСпецификацииНоменклатурыСрезПоследних.Номенклатура
| И ИсходныеДанные.ХарактеристикаНоменклатуры = ОсновныеСпецификацииНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры
| И ИсходныеДанные.Подразделение = ОсновныеСпецификацииНоменклатурыСрезПоследних.Подразделение
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТочныеСпецификации.Регистратор,
| ТочныеСпецификации.Номенклатура,
| ТочныеСпецификации.ХарактеристикаНоменклатуры,
| ТочныеСпецификации.Спецификация,
| ТочныеСпецификации.Количество,
| ТочныеСпецификации.Заказ,
| ТочныеСпецификации.Подразделение,
| ВЫБОР
| КОГДА ТочныеСпецификации.ОсновнаяСпецификация ЕСТЬ NULL
| ТОГДА ЕСТЬNULL(ОсновныеСпецификацииНоменклатурыСрезПоследних.СпецификацияНоменклатуры, ЗНАЧЕНИЕ(Справочник.СпецификацииНоменклатуры.ПустаяСсылка))
| ИНАЧЕ ЕСТЬNULL(ТочныеСпецификации.ОсновнаяСпецификация, ЗНАЧЕНИЕ(Справочник.СпецификацииНоменклатуры.ПустаяСсылка))
| КОНЕЦ КАК ОсновнаяСпецификация
|ПОМЕСТИТЬ ВсеСпецификации
|ИЗ
| ТочныеСпецификации КАК ТочныеСпецификации
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОсновныеСпецификацииНоменклатуры.СрезПоследних(, Подразделение = ЗНАЧЕНИЕ(Справочник.Подразделения.ПустаяСсылка)) КАК ОсновныеСпецификацииНоменклатурыСрезПоследних
| ПО ТочныеСпецификации.Номенклатура = ОсновныеСпецификацииНоменклатурыСрезПоследних.Номенклатура
| И ТочныеСпецификации.ХарактеристикаНоменклатуры = ОсновныеСпецификацииНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВсеСпецификации.Регистратор КАК Регистратор,
| ВсеСпецификации.Номенклатура,
| ВсеСпецификации.ХарактеристикаНоменклатуры,
| ВЫБОР
| КОГДА ВсеСпецификации.Спецификация = ЗНАЧЕНИЕ(Справочник.СпецификацииНоменклатуры.ПустаяСсылка)
| ТОГДА ВсеСпецификации.ОсновнаяСпецификация
| ИНАЧЕ ВсеСпецификации.Спецификация
| КОНЕЦ КАК Спецификация,
| ВсеСпецификации.Количество,
| ВсеСпецификации.Заказ,
| ВсеСпецификации.Подразделение,
| ВсеСпецификации.Номенклатура.ЕдиницаХраненияОстатков.Ссылка КАК ЕдиницаИзмерения,
| ВсеСпецификации.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК Коэффициент
|ИЗ
| ВсеСпецификации КАК ВсеСпецификации
|ИТОГИ ПО
| Регистратор";

Запрос.УстановитьПараметр("Регистратор", ЭлементыФормы.НашиДокументы.Значение.ВыгрузитьКолонку("План"));

ВыборкаПоРегистратору = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);


Пользователь = ПараметрыСеанса.ТекущийПользователь;
Отбор = Новый Структура("Пользователь, Настройка", Пользователь, ПланыВидовХарактеристик.НастройкиПользователей.ОсновнаяОрганизация);
Орг = РегистрыСведений.НастройкиПользователей.Получить(Отбор);
Если НЕ ЗначениеЗаполнено(Орг.Значение) Тогда
Выборка = Справочники.Организации.Выбрать();
Если Выборка.Следующий() Тогда
Орг = Выборка.Ссылка;
Иначе
Орг = Справочники.Организации.ПустаяСсылка();
КонецЕсли;
Иначе
Орг = Орг.Значение;
КонецЕсли;

Пока ВыборкаПоРегистратору.Следующий() Цикл

Док = Документы.ЗаказНаПроизводство.СоздатьДокумент();
Док.Дата = ТекущаяДата();
Док.Ответственный = Пользователь;
Док.Организация = Орг;


Выборка = ВыборкаПоРегистратору.Выбрать();
Пока Выборка.Следующий() Цикл
Док.Подразделение = Выборка.Подразделение;
СтрокаТЧ = Док.Продукция.Добавить();
СтрокаТЧ.Номенклатура = Выборка.Номенклатура;
СтрокаТЧ.ХарактеристикаНоменклатуры = Выборка.ХарактеристикаНоменклатуры;
СтрокаТЧ.Количество = Выборка.Количество;
СтрокаТЧ.ЕдиницаИзмерения = Выборка.ЕдиницаИзмерения;
СтрокаТЧ.Спецификация = Выборка.Спецификация;
СтрокаТЧ.Заказ = Выборка.Заказ;
КонецЦикла;

Док.Записать(РежимЗаписиДокумента.Запись);

СтрокаТЗ = ЭлементыФормы.НашиДокументы.Значение.Найти(ВыборкаПоРегистратору.Регистратор, "План");
Если СтрокаТЗ = Неопределено Тогда
Сообщить("Что-то тут не так! " + ВыборкаПоРегистратору.Регистратор, СтатусСообщения.Важное);
Иначе
СтрокаТЗ.Заказ = Док.Ссылка;
КонецЕсли;

ЭлементыФормы.НашиДокументы.ОбновитьСтроки();

КонецЦикла;






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

Процедура ВыбПериодНажатие(Элемент)
НастройкаПериода = Новый НастройкаПериода;
НастройкаПериода.РедактироватьКакИнтервал = Истина;
НастройкаПериода.РедактироватьКакПериод = Истина;
НастройкаПериода.ВариантНастройки = ВариантНастройкиПериода.Период;
НастройкаПериода.УстановитьПериод(НачПериода, ?(КонПериода='0001-01-01', КонПериода, КонецДня(КонПериода)));
Если НастройкаПериода.Редактировать() Тогда
НачПериода = НастройкаПериода.ПолучитьДатуНачала();
КонПериода = НастройкаПериода.ПолучитьДатуОкончания();
КонецЕсли;
КонецПроцедуры

Процедура ЗаполнитьНажатие(Элемент)

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

Список = Новый СписокЗначений;

Если ЗначениеЗаполнено(НачПериода) И ЗначениеЗаполнено(КонПериода) Тогда
Выборка = Документы.ПланПроизводства.Выбрать(НачПериода,КонецДня(КонПериода));
ИначеЕсли НЕ ЗначениеЗаполнено(НачПериода) И ЗначениеЗаполнено(КонПериода) Тогда
Выборка = Документы.ПланПроизводства.Выбрать(,КонецДня(КонПериода));
ИначеЕсли ЗначениеЗаполнено(НачПериода) И НЕ ЗначениеЗаполнено(КонПериода) Тогда
Выборка = Документы.ПланПроизводства.Выбрать(НачПериода);
Иначе
Выборка = Документы.ПланПроизводства.Выбрать();
КонецЕсли;

Пока Выборка.Следующий() Цикл
Если Выборка.Проведен Тогда
Список.Добавить(Выборка.Ссылка,,Истина);
КонецЕсли;
КонецЦикла;

Если Список.ОтметитьЭлементы("Отметьте необходимые планы") Тогда
Для каждого ЭлементСписка Из Список Цикл
Если ЭлементСписка.Пометка Тогда
СтрокаТЗ = ТЗ.Добавить();
СтрокаТЗ.План = ЭлементСписка.Значение;
КонецЕсли;
КонецЦикла;
Иначе
Для каждого ЭлементСписка Из Список Цикл
СтрокаТЗ = ТЗ.Добавить();
СтрокаТЗ.План = ЭлементСписка.Значение;
КонецЦикла;
КонецЕсли;

ЭлементыФормы.НашиДокументы.Значение = ТЗ;
ЭлементыФормы.НашиДокументы.СоздатьКолонки();

КолонкаПлан = ЭлементыФормы.НашиДокументы.Колонки.План;
КолонкаПлан.ЭлементУправления.КнопкаОткрытия = Истина;
КолонкаЗаказ = ЭлементыФормы.НашиДокументы.Колонки.Заказ;
КолонкаЗаказ.ЭлементУправления.КнопкаОткрытия = Истина;

ЭлементыФормы.НашиДокументы.ОбновитьСтроки();

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


Yura063

Так вы поставьте условие что если Документ план на производство меняется то создавать новый документ заказа
Помогли, отблагодари!

ildarik_58

хмм это где надо поставит! и это решит мою проблему того чтобы каждый заказ из плана будет создавать отдельным документом?

Yura063

Он у вас один документ выводит? Или все в один?
Помогли, отблагодари!

ildarik_58

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

Yura063

Список заказов хранится здесь - ПланыПроизводстваОбороты.Заказ
Помогли, отблагодари!

ildarik_58

вы можете написать полный код , и написать куда его вставить!

Besart

Цитата: ildarik_58 от 05 мар 2013, 16:24вы можете написать полный код , и написать куда его вставить!
а че своих мыслей ваабще нет? ты уже не раз задавал вопрос на эту тему, начни что нибудь свое, а люди подскажут по ходу пьнсы, а то вынь да положь

Теги:

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

Рейтинг@Mail.ru

Поиск