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

Автор Тема: Редактирование макета внешней обратбоки  (Прочитано 1448 раз)

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

Оффлайн ya.dmitri

  • *
  • Сообщений: 5
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-07-12
  • Сайт: 
  • Профессия: Программист 1С
Всем привет! Знающие люди, помогите. У меня есть внеш обработка и в ней необходимо добавить колонку "Марка раствора / бетонной смеси", в которой необходимо чтобы выводилось условие: например
если номенклатура "цемент " | количество факт 0,77 | марка (0,77*4)=0,308- то марка 150 (если колфакт <=420 тогда 150-ый), только по цементу

Вот картинка (что должно получиться)

----------------------------------------------------------------------------------------------------------------
1с Предприятие 8.2.19.83.
Бухгалтерия предприятия 2.0.58.6

Код модуля формы


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

Процедура ДействияФормыСформировать(Кнопка)

Отказ = Ложь;

Если Не ЗначениеЗаполнено(ДатаНач) Или Не ЗначениеЗаполнено(ДатаКон) Тогда
Сообщить("Не указан период!");
Отказ = Истина;
ИначеЕсли ДатаНач > ДатаКон Тогда
Сообщить("Период указан неверно!");
Отказ = Истина;
КонецЕсли;

Если Отказ Тогда
Возврат;
КонецЕсли;

Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ДатаНач", ДатаНач);
Запрос.УстановитьПараметр("ДатаКон", КонецДня(ДатаКон));
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ИспользованныеМатериалы.НоменклатурнаяГруппа,
| ИспользованныеМатериалы.Дата КАК Дата,
| СУММА(ИспользованныеМатериалы.Количество) КАК Количество
|ПОМЕСТИТЬ ИспользованныеМатериалы
|ИЗ
| РегистрСведений.ИспользованныеМатериалы КАК ИспользованныеМатериалы
|ГДЕ
| ИспользованныеМатериалы.Дата МЕЖДУ &ДатаНач И &ДатаКон
|
|СГРУППИРОВАТЬ ПО
| ИспользованныеМатериалы.НоменклатурнаяГруппа,
| ИспользованныеМатериалы.Дата
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВложенныйЗапрос.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
| ВложенныйЗапрос.Дата КАК Дата,
| СУММА(ВложенныйЗапрос.КоличествоФакт) КАК КоличествоФакт,
| СУММА(ВложенныйЗапрос.КоличествоПлан) КАК КоличествоПлан,
| СУММА(ВложенныйЗапрос.КоличествоФакт - ВложенныйЗапрос.КоличествоПлан) КАК КоличествоОтклонение,
| СУММА(ВложенныйЗапрос.КоличествоФакт * 4) КАК Марка
|ИЗ
| (ВЫБРАТЬ
| ИспользованныеМатериалы.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
| ИспользованныеМатериалы.Дата КАК Дата,
| ИспользованныеМатериалы.Количество / 1000 КАК КоличествоФакт,
| 0 КАК КоличествоПлан
| ИЗ
| ИспользованныеМатериалы КАК ИспользованныеМатериалы
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ХозрасчетныйОбороты.КорСубконто1.НоменклатурнаяГруппа,
| ХозрасчетныйОбороты.Период,
| 0,
| ВЫРАЗИТЬ(ХозрасчетныйОбороты.КоличествоКорОборот КАК ЧИСЛО(10, 0))
| ИЗ
| РегистрБухгалтерии.Хозрасчетный.Обороты(
| &ДатаНач,
| &ДатаКон,
| День,
| Счет В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОсновноеПроизводство)),
| ,
| КорСубконто1.НоменклатурнаяГруппа В
| (ВЫБРАТЬ РАЗЛИЧНЫЕ
| ИспользованныеМатериалы.НоменклатурнаяГруппа
| ИЗ
| ИспользованныеМатериалы КАК ИспользованныеМатериалы),
| КорСчет В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Материалы)),
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура)) КАК ХозрасчетныйОбороты) КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.НоменклатурнаяГруппа,
| ВложенныйЗапрос.Дата
|
|УПОРЯДОЧИТЬ ПО
| Дата
|ИТОГИ
| СУММА(КоличествоФакт),
| СУММА(КоличествоПлан),
| СУММА(КоличествоОтклонение),
| СУММА(Марка)
|ПО
| НоменклатурнаяГруппа,
| Дата";



Если СпособВывода = 1 Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст, "ВложенныйЗапрос.Дата", "&ДатаКон");
ИначеЕсли СпособВывода = 2 Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст, "ВложенныйЗапрос.Дата", "НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Дата, ДЕНЬ)");
КонецЕсли;

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

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

Макет = ПолучитьМакет("Макет");
ТабДок = ЭлементыФормы.ТабДок;
ТабДок.Очистить();

Область = Макет.ПолучитьОбласть("Заголовок");
Область.Параметры.ДатаНач = Формат(ДатаНач, "ДФ=dd.MM.yyyy; ДЛФ=D");
Область.Параметры.ДатаКон = Формат(ДатаКон, "ДФ=dd.MM.yyyy; ДЛФ=D");
ТабДок.Вывести(Область);

Если СпособВывода <> 1 Тогда
ТабДок.Вывести(Макет.ПолучитьОбласть("ШапкаТаблицыПериод"));
Иначе
ТабДок.Вывести(Макет.ПолучитьОбласть("ШапкаТаблицы"));
КонецЕсли;

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

Выборка = ВыборкаПоДатам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "НоменклатурнаяГруппа");
Пока Выборка.Следующий() Цикл
Если СпособВывода <> 1 Тогда
Область = Макет.ПолучитьОбласть("СтрокаТаблицыПериод");
Иначе
Область = Макет.ПолучитьОбласть("СтрокаТаблицы");
КонецЕсли;
Область.Параметры.Заполнить(Выборка);
Если СпособВывода = 2 Тогда
Область.Параметры.Дата = Формат(Выборка.Дата, "ДФ=dd.MM.yyyy; ДЛФ=D");
КонецЕсли;

ТабДок.Вывести(Область);
КонецЦикла;

КонецЦикла;

ВыборкаПоНоменклатурнымГруппам = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "НоменклатурнаяГруппа", "Все");
Пока ВыборкаПоНоменклатурнымГруппам.Следующий() Цикл

Если СпособВывода <> 1 Тогда
Область = Макет.ПолучитьОбласть("ПодвалТаблицыПериод");
Иначе
Область = Макет.ПолучитьОбласть("ПодвалТаблицы");
КонецЕсли;
Область.Параметры.Заполнить(ВыборкаПоНоменклатурнымГруппам);
ТабДок.Вывести(Область);

КонецЦикла;

ТабДок.ФиксацияСверху = 4;
ТабДок.ТолькоПросмотр = Истина;

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

Процедура ПриОткрытии()
СпособВывода = 1;
КонецПроцедуры


Оффлайн ya.dmitri

  • *
  • Сообщений: 5
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-07-12
  • Сайт: 
  • Профессия: Программист 1С
Всем привет! Знающие люди, помогите. У меня есть внеш обработка и в ней необходимо добавить колонку "Марка раствора / бетонной смеси", в которой необходимо чтобы выводилось условие: например
если номенклатура "цемент " | количество факт 0,77 | марка (0,77*4)=0,308- то марка 150 (если колфакт <=420 тогда 150-ый), только по цементу

Вот картинка (что должно получиться)

----------------------------------------------------------------------------------------------------------------
1с Предприятие 8.2.19.83.
Бухгалтерия предприятия 2.0.58.6

Код модуля формы


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

Процедура ДействияФормыСформировать(Кнопка)

Отказ = Ложь;

Если Не ЗначениеЗаполнено(ДатаНач) Или Не ЗначениеЗаполнено(ДатаКон) Тогда
Сообщить("Не указан период!");
Отказ = Истина;
ИначеЕсли ДатаНач > ДатаКон Тогда
Сообщить("Период указан неверно!");
Отказ = Истина;
КонецЕсли;

Если Отказ Тогда
Возврат;
КонецЕсли;

Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ДатаНач", ДатаНач);
Запрос.УстановитьПараметр("ДатаКон", КонецДня(ДатаКон));
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ИспользованныеМатериалы.НоменклатурнаяГруппа,
| ИспользованныеМатериалы.Дата КАК Дата,
| СУММА(ИспользованныеМатериалы.Количество) КАК Количество
|ПОМЕСТИТЬ ИспользованныеМатериалы
|ИЗ
| РегистрСведений.ИспользованныеМатериалы КАК ИспользованныеМатериалы
|ГДЕ
| ИспользованныеМатериалы.Дата МЕЖДУ &ДатаНач И &ДатаКон
|
|СГРУППИРОВАТЬ ПО
| ИспользованныеМатериалы.НоменклатурнаяГруппа,
| ИспользованныеМатериалы.Дата
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВложенныйЗапрос.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
| ВложенныйЗапрос.Дата КАК Дата,
| СУММА(ВложенныйЗапрос.КоличествоФакт) КАК КоличествоФакт,
| СУММА(ВложенныйЗапрос.КоличествоПлан) КАК КоличествоПлан,
| СУММА(ВложенныйЗапрос.КоличествоФакт - ВложенныйЗапрос.КоличествоПлан) КАК КоличествоОтклонение,
| СУММА(ВложенныйЗапрос.КоличествоФакт * 4) КАК Марка
|ИЗ
| (ВЫБРАТЬ
| ИспользованныеМатериалы.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
| ИспользованныеМатериалы.Дата КАК Дата,
| ИспользованныеМатериалы.Количество / 1000 КАК КоличествоФакт,
| 0 КАК КоличествоПлан
| ИЗ
| ИспользованныеМатериалы КАК ИспользованныеМатериалы
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ХозрасчетныйОбороты.КорСубконто1.НоменклатурнаяГруппа,
| ХозрасчетныйОбороты.Период,
| 0,
| ВЫРАЗИТЬ(ХозрасчетныйОбороты.КоличествоКорОборот КАК ЧИСЛО(10, 0))
| ИЗ
| РегистрБухгалтерии.Хозрасчетный.Обороты(
| &ДатаНач,
| &ДатаКон,
| День,
| Счет В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОсновноеПроизводство)),
| ,
| КорСубконто1.НоменклатурнаяГруппа В
| (ВЫБРАТЬ РАЗЛИЧНЫЕ
| ИспользованныеМатериалы.НоменклатурнаяГруппа
| ИЗ
| ИспользованныеМатериалы КАК ИспользованныеМатериалы),
| КорСчет В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Материалы)),
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура)) КАК ХозрасчетныйОбороты) КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.НоменклатурнаяГруппа,
| ВложенныйЗапрос.Дата
|
|УПОРЯДОЧИТЬ ПО
| Дата
|ИТОГИ
| СУММА(КоличествоФакт),
| СУММА(КоличествоПлан),
| СУММА(КоличествоОтклонение),
| СУММА(Марка)
|ПО
| НоменклатурнаяГруппа,
| Дата";



Если СпособВывода = 1 Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст, "ВложенныйЗапрос.Дата", "&ДатаКон");
ИначеЕсли СпособВывода = 2 Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст, "ВложенныйЗапрос.Дата", "НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Дата, ДЕНЬ)");
КонецЕсли;

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

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

Макет = ПолучитьМакет("Макет");
ТабДок = ЭлементыФормы.ТабДок;
ТабДок.Очистить();

Область = Макет.ПолучитьОбласть("Заголовок");
Область.Параметры.ДатаНач = Формат(ДатаНач, "ДФ=dd.MM.yyyy; ДЛФ=D");
Область.Параметры.ДатаКон = Формат(ДатаКон, "ДФ=dd.MM.yyyy; ДЛФ=D");
ТабДок.Вывести(Область);

Если СпособВывода <> 1 Тогда
ТабДок.Вывести(Макет.ПолучитьОбласть("ШапкаТаблицыПериод"));
Иначе
ТабДок.Вывести(Макет.ПолучитьОбласть("ШапкаТаблицы"));
КонецЕсли;

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

Выборка = ВыборкаПоДатам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "НоменклатурнаяГруппа");
Пока Выборка.Следующий() Цикл
Если СпособВывода <> 1 Тогда
Область = Макет.ПолучитьОбласть("СтрокаТаблицыПериод");
Иначе
Область = Макет.ПолучитьОбласть("СтрокаТаблицы");
КонецЕсли;
Область.Параметры.Заполнить(Выборка);
Если СпособВывода = 2 Тогда
Область.Параметры.Дата = Формат(Выборка.Дата, "ДФ=dd.MM.yyyy; ДЛФ=D");
КонецЕсли;

ТабДок.Вывести(Область);
КонецЦикла;

КонецЦикла;

ВыборкаПоНоменклатурнымГруппам = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "НоменклатурнаяГруппа", "Все");
Пока ВыборкаПоНоменклатурнымГруппам.Следующий() Цикл

Если СпособВывода <> 1 Тогда
Область = Макет.ПолучитьОбласть("ПодвалТаблицыПериод");
Иначе
Область = Макет.ПолучитьОбласть("ПодвалТаблицы");
КонецЕсли;
Область.Параметры.Заполнить(ВыборкаПоНоменклатурнымГруппам);
ТабДок.Вывести(Область);

КонецЦикла;

ТабДок.ФиксацияСверху = 4;
ТабДок.ТолькоПросмотр = Истина;

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

Процедура ПриОткрытии()
СпособВывода = 1;
КонецПроцедуры

Оффлайн Alex56

  • *****
  • Сообщений: 828
  • РЕПУТАЦИЯ: 11
  • КПД: 1%
  • Регистрация: 2013-10-02
  • Сайт: itoren.ucoz.ru
  • Профессия: Ученик 1С
Не очень понятно. Вам нужно вывести марку цемента в отдельной таблице?
1. В справочнике номенклатура писать марку
2. Менять запрос
Нужно постоянно трудиться.

Оффлайн ya.dmitri

  • *
  • Сообщений: 5
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-07-12
  • Сайт: 
  • Профессия: Программист 1С
Мне надо в  колонке "марка" выводить марку цемента. Только в колонке "марка" я должен взять результаты из колонки "расход факт" и через процедуру , которая будет обрабатывать условия и это условие вернется в колонку "марка" с названием. Только условие такое, если расходфакт <= 215 тогда марка 75, если <=320 тогда марка 125 и тд


Теги:
 

Открытие управляемой формы из другой формы внешней обработки

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

Ответов: 3
Просмотров: 6465
Последний ответ 10 Дек 2015, 11:02
от vitasw
Ошибка при печати внешней формы "Поле объекта не обнаружено" папка Сотрудники

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

Ответов: 5
Просмотров: 4201
Последний ответ 14 Окт 2014, 16:43
от leksv
1С:Консолидация ПРОФ, редакция 1.6( Операнд "Регистр бух-рии внешней ИБ" )

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

Ответов: 2
Просмотров: 3065
Последний ответ 31 Мар 2011, 18:31
от BaranovaPolina
Кнопка "Отправка по почте" во внешней печатной форме

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

Ответов: 2
Просмотров: 2444
Последний ответ 22 Сен 2014, 14:32
от SergSS
Проблема с внешней обработкой "Загрузка банк-клиент.erp"

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

Ответов: 6
Просмотров: 2167
Последний ответ 24 Сен 2015, 20:13
от Kironten

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
141 Сообщений
AIFrame
73 Сообщений
ilyay ilyay
65 Сообщений
alex0402
52 Сообщений
andron81_81
44 Сообщений
oleg-x
41 Сообщений
BuhRust
31 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
Golickoff Golickoff
27 Сообщений
alexandr_ll
23 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal