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

Автор Тема: как заполнить колонки в форме?  (Прочитано 3056 раз)

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

Оффлайн serq82

  • *
  • Сообщений: 22
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-04-25
  • Сайт: 
  • Профессия: Бухгалтер
1с 8.1 УТ создал документ Задание на производство,в заказе покупателя добавил кнопку для формирования задания на производство,документы создаются для каждого станка отдельно....
вот код:
Процедура СформироватьЗаданиеНаПроизводствоНажатие(Элемент)
    Если Не Проведен Тогда
      Предупреждение("Сформировать можно только после его проведения!");
      Возврат;
   КонецЕсли;

   МассивВидовПрофилей = Новый Массив;
      
   Для Каждого СтрокаТЧ Из Товары Цикл   
      НайденныйВидПрофиля = МассивВидовПрофилей.Найти(СтрокаТЧ.Номенклатура.ВидПрофиля);
      Если НайденныйВидПрофиля = Неопределено Тогда
         МассивВидовПрофилей.Добавить(СтрокаТЧ.Номенклатура.ВидПрофиля);
      КонецЕсли;
   КонецЦикла;
   //н=0;
   Для Каждого ЭлементМассива Из МассивВидовПрофилей Цикл
      //добавляет в колонку Задание на производство сформированного документа
      СоздатьДокументЗаданиеНаПроизводство(ЭлементМассива);
   //   Товары[Н].ЗаданиеНаПроизводство =  Документы.ЗаданиеНаПроизводство.НайтиПоРеквизиту("ДокументОснование",ЗаданиеНаПроизводство.ДокументОснование);
    // н=н+1;
       
КонецЦикла;
   
КонецПроцедуры
Процедура СоздатьДокументЗаданиеНаПроизводство(ЭлементМассива)
   ЗаданиеНаПроизводство = Документы.ЗаданиеНаПроизводство.СоздатьДокумент();
   ЗаданиеНаПроизводство.Дата          = ТекущаяДата();
   ЗаданиеНаПроизводство.ДокументОснование = Ссылка;
   ЗаданиеНаПроизводство.ДатаОтгрузки       = ДатаОтгрузки;
   ЗаданиеНаПроизводство.Контрагент       = Контрагент;
   //ЗаданиеНаПроизводство.Организация    = Организация;
   ЗаданиеНаПроизводство.Подразделение    = Подразделение;
   ЗаданиеНаПроизводство.Комментарий       = Комментарий;
   ЗаказПокупателя = Документы.ЗаказПокупателя;
   
   Для Каждого СтрокаТЧ Из Товары Цикл
      
      Если СтрокаТЧ.Номенклатура.ВидПрофиля <> ЭлементМассива Тогда
         Продолжить;
      КонецЕсли;
        СтрокиТабл = ЗаданиеНаПроизводство.Товары.Добавить();
      СтрокиТабл.Номенклатура = СтрокаТЧ.Номенклатура;
      СтрокиТабл.Длина = СтрокаТЧ.Длина;
      СтрокиТабл.Ширина = СтрокаТЧ.Ширина;
      СтрокиТабл.КоличествоЛистов = СтрокаТЧ.КоличествоЛистов;
      СтрокиТабл.Количество = СтрокаТЧ.Количество;
      
   КонецЦикла;
в заказе покупателя ТЧ форме добавил задание производство,как сделать чтобы для каждого ВидаПрофиля показывало свой документ задание на производство и как сделать проверку что документ задание на производство если не проведен очищал таблицу и создавал новый и если проведен то запрет формирование нового???


Оффлайн serq82

  • *
  • Сообщений: 22
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-04-25
  • Сайт: 
  • Профессия: Бухгалтер
1с 8.1 УТ создал документ Задание на производство,в заказе покупателя добавил кнопку для формирования задания на производство,документы создаются для каждого станка отдельно....
вот код:
Процедура СформироватьЗаданиеНаПроизводствоНажатие(Элемент)
Если Не Проведен Тогда
Предупреждение("Сформировать можно только после его проведения!");
Возврат;
КонецЕсли;

МассивВидовПрофилей = Новый Массив;

Для Каждого СтрокаТЧ Из Товары Цикл
НайденныйВидПрофиля = МассивВидовПрофилей.Найти(СтрокаТЧ.Номенклатура.ВидПрофиля);
Если НайденныйВидПрофиля = Неопределено Тогда
МассивВидовПрофилей.Добавить(СтрокаТЧ.Номенклатура.ВидПрофиля);
КонецЕсли;
КонецЦикла;
//н=0;
Для Каждого ЭлементМассива Из МассивВидовПрофилей Цикл
//добавляет в колонку Задание на производство сформированного документа
СоздатьДокументЗаданиеНаПроизводство(ЭлементМассива);
// Товары[Н].ЗаданиеНаПроизводство = Документы.ЗаданиеНаПроизводство.НайтиПоРеквизиту("ДокументОснование",ЗаданиеНаПроизводство.ДокументОснование);
// н=н+1;

КонецЦикла;

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

Для Каждого СтрокаТЧ Из Товары Цикл

Если СтрокаТЧ.Номенклатура.ВидПрофиля <> ЭлементМассива Тогда
Продолжить;
КонецЕсли;
СтрокиТабл = ЗаданиеНаПроизводство.Товары.Добавить();
СтрокиТабл.Номенклатура = СтрокаТЧ.Номенклатура;
СтрокиТабл.Длина = СтрокаТЧ.Длина;
СтрокиТабл.Ширина = СтрокаТЧ.Ширина;
СтрокиТабл.КоличествоЛистов = СтрокаТЧ.КоличествоЛистов;
СтрокиТабл.Количество = СтрокаТЧ.Количество;

КонецЦикла;
в заказе покупателя ТЧ форме добавил задание производство,как сделать чтобы для каждого ВидаПрофиля показывало свой документ задане на проиизводство и как сделать проверку что документ задание на производство если не проведен очищал таблицу и создавал новый и если проведен то запрет формирование нового???

Оффлайн sergejK74

  • *****
  • Сообщений: 1093
  • РЕПУТАЦИЯ: 458
  • КПД: 42%
  • Всегда готов помочь!
  • Регистрация: 2011-07-08
  • Сайт: 
  • Профессия: Ученик 1С
Код вставляй между тегами
[code]
[/code]. Для этого даже кнопочка специальная есть.
Кнопочка Спасибо - слева!

Оффлайн serq82

  • *
  • Сообщений: 22
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-04-25
  • Сайт: 
  • Профессия: Бухгалтер
1с 8.1 УТ создал документ Задание на производство,в заказе покупателя добавил кнопку для формирования задания на производство,документы создаются для каждого станка отдельно....
вот код:
Процедура СформироватьЗаданиеНаПроизводствоНажатие(Элемент)
Если Не Проведен Тогда
Предупреждение("Сформировать можно только после его проведения!");
Возврат;
КонецЕсли;

МассивВидовПрофилей = Новый Массив;

Для Каждого СтрокаТЧ Из Товары Цикл
НайденныйВидПрофиля = МассивВидовПрофилей.Найти(СтрокаТЧ.Номенклатура.ВидПрофиля);
Если НайденныйВидПрофиля = Неопределено Тогда
МассивВидовПрофилей.Добавить(СтрокаТЧ.Номенклатура.ВидПрофиля);
КонецЕсли;
КонецЦикла;
//н=0;
Для Каждого ЭлементМассива Из МассивВидовПрофилей Цикл
//добавляет в колонку Задание на производство сформированного документа
СоздатьДокументЗаданиеНаПроизводство(ЭлементМассива);
// Товары[Н].ЗаданиеНаПроизводство = Документы.ЗаданиеНаПроизводство.НайтиПоРеквизиту("ДокументОснование",ЗаданиеНаПроизводство.ДокументОснование);
// н=н+1;

КонецЦикла;

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

Для Каждого СтрокаТЧ Из Товары Цикл

Если СтрокаТЧ.Номенклатура.ВидПрофиля <> ЭлементМассива Тогда
Продолжить;
КонецЕсли;
СтрокиТабл = ЗаданиеНаПроизводство.Товары.Добавить();
СтрокиТабл.Номенклатура = СтрокаТЧ.Номенклатура;
СтрокиТабл.Длина = СтрокаТЧ.Длина;
СтрокиТабл.Ширина = СтрокаТЧ.Ширина;
СтрокиТабл.КоличествоЛистов = СтрокаТЧ.КоличествоЛистов;
СтрокиТабл.Количество = СтрокаТЧ.Количество;

КонецЦикла;
в заказе покупателя ТЧ форме добавил задание производство,как сделать чтобы для каждого ВидаПрофиля показывало свой документ задане на проиизводство и как сделать проверку что документ задание на производство если не проведен очищал таблицу и создавал новый и если проведен то запрет формирование нового???

Оффлайн serq82

  • *
  • Сообщений: 22
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-04-25
  • Сайт: 
  • Профессия: Бухгалтер
никто не может помочь?

Оффлайн Шурыгин Иван Сергеевич

  • забей на все....
  • ****
  • Сообщений: 330
  • РЕПУТАЦИЯ: 82
  • КПД: 25%
  • забей на все!
  • Регистрация: 2011-05-23
  • Сайт: 
  • Профессия: Программист 8.1
для того чтобы показывал форму каждого документа, необходимо в цикле открывать формы новых документов.
относительно второго я бы сделал примерно так:
Процедура СоздатьДокументЗаданиеНаПроизводство(ЭлементМассива)
ТекстЗапроса = "Выбрать Ссылка
Из Документы.ЗаданиеНаПроизводство
Где ВидПрофиля = &ВидПрофиля
И ДокументОснование = &ДокументОснование";
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("ВидПрофиля",ЭлементМассива);
Запрос.УстановитьПараметр("ДокументОснование",Ссылка);

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

Для Каждого СтрокаТЧ Из Товары Цикл

Если СтрокаТЧ.Номенклатура.ВидПрофиля <> ЭлементМассива Тогда
Продолжить;
КонецЕсли;
СтрокиТабл = ЗаданиеНаПроизводство.Товары.Добавить();
СтрокиТабл.Номенклатура = СтрокаТЧ.Номенклатура;
СтрокиТабл.Длина = СтрокаТЧ.Длина;
СтрокиТабл.Ширина = СтрокаТЧ.Ширина;
СтрокиТабл.КоличествоЛистов = СтрокаТЧ.КоличествоЛистов;
СтрокиТабл.Количество = СтрокаТЧ.Количество;

КонецЦикла;

единственное поправьте синтаксические ошибки...
===================================
жизнь надо прожить так, чтоб вверху посмотрели.
и сказали "А ну ка повтори"
===================================

Оффлайн Шурыгин Иван Сергеевич

  • забей на все....
  • ****
  • Сообщений: 330
  • РЕПУТАЦИЯ: 82
  • КПД: 25%
  • забей на все!
  • Регистрация: 2011-05-23
  • Сайт: 
  • Профессия: Программист 8.1
забыл... в конце добавьте
Фрм = ЗаданиеНаПроизводство.ПолучитьФорму();
Фрм.Открыть();
===================================
жизнь надо прожить так, чтоб вверху посмотрели.
и сказали "А ну ка повтори"
===================================


Теги:
 

Группа "СписокКомпоновщикНастроекПользовательскиеНастройки" в форме "Перечисления"

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

Ответов: 1
Просмотров: 1753
Последний ответ 12 Ноя 2016, 18:08
от Азамат Хубиев
Изменение цвета при подборе сотрудника в форме списка справочника "Сотрудники организации" для документа "Зарплата к выплате организаций" ЗУП 2.5

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

Ответов: 2
Просмотров: 263
Последний ответ 12 Окт 2017, 14:02
от wise
Как настроить отображение на форме "группа плательщика единого налога" при выборе системы налогообложения "Единый налог"?

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

Ответов: 1
Просмотров: 2271
Последний ответ 17 Авг 2015, 07:48
от cska-fanat-kz
Добавление строки и заполнение строки в ТЗ на форме

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

Ответов: 1
Просмотров: 283
Последний ответ 25 Сен 2017, 09:00
от Св Ч
Ребята, срочно нужна помощь. Какую процедуру нужно написать в форме справочника, чтобы таблица заполнялась данными из другого справочника?

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

Ответов: 5
Просмотров: 2751
Последний ответ 27 Май 2016, 15:19
от Олька Бякина

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
163 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
56 Сообщений
alex0402
46 Сообщений
andron81_81
44 Сообщений
AIFrame
36 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
BuhRust
28 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal