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

Автор Тема: Помогите срочно!!!  (Прочитано 2251 раз)

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

Оффлайн Shaman4ik

  • *
  • Сообщений: 2
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-01
  • Сайт: 
  • Профессия: Программист 7.7
Нужно что бы при нажатии на Элемент Диалога "Тара" Таблица Значений тбТара выводила барабаны Склада1 если выбрана площадка "0".

Перем тбПлощадкаНомер1;
Перем тбПлощадкаНомер2;
Перем тбПлощадкаНомер3;
Перем тбПлощадкаНомер4;
Перем тбПлощадкаНомер5;
Перем тбПлощадкаНомер6;
Перем Запрос, дЗапроса, ТестЗапроса, тбКуски, Склад, тбТара, дтЗапроса, спТараСтрДокумента;
Перем Склад1, Склад2;


//_____________________________________________________________________________
Функция  КонтрольДоступностиКнопок()
   Если КоличествоСтрок() > 0 тогда
       Форма.спПлощадка.Доступность(0);
   Иначе
       Форма.спПлощадка.Доступность(1);
   КонецЕсли;
КонецФункции //  КонтрольДоступностиКнопок()



//_____________________________________________________________________________


Процедура ВводНового(Копирование)
   
   Автор = глПользователь;
   Склад = ВосстановитьЗначение("СкладГП");       
      
КонецПроцедуры

//----------------------------------------------------
Процедура ЗаполнитьХарактеристикиПлощадок();
   
         тбПлощадкаНомер1 = СоздатьОбъект("ТаблицаЗначений");
         тбПлощадкаНомер1.НоваяКолонка("НазваниеРяда","Строка",4);
         тбПлощадкаНомер1.НоваяКолонка("РазмерРяда","Число",4,0);
   
   тбПлощадкаНомер1.НоваяСтрока();
   тбПлощадкаНомер1.НазваниеРяда = "р001";
   тбПлощадкаНомер1.РазмерРяда = 15;
   
   
КонецПроцедуры   


//----------------------------------------------------



//----------------------------------------------------

Процедура ВыбратьБарабаны();
   
   
тбТара.УдалитьСтроки();   
   
   Если ДатаДок>ПолучитьДатуТА() тогда
      дЗапроса=ПолучитьДатуТА();
   Иначе
      дЗапроса=ДатаДок;
   КонецЕсли;
   
ТекстЗапроса = "";
   ТекстЗапроса = ТекстЗапроса +
   "//{{ЗАПРОС(ОстаткиТоваров)
   |Тов=Регистр.Товары.Товар;
   |Скл=Регистр.Товары.Склад;
   |Дл1=Регистр.Товары.Длина1;
   |Дл2=Регистр.Товары.Длина2;
   |Дл3=Регистр.Товары.Длина3;
   |Тара=Регистр.Товары.Тара;
   |НТар=Регистр.Товары.НомерТары;
   |Рез=Регистр.Товары.Резерв;
   |Кол=Регистр.Товары.Количество;
   |Группировка Тов;
   |Группировка Дл1;
   |Группировка Дл2;
   |Группировка Дл3;
   |Группировка Тара;
   |Группировка НТар;
   |Группировка Рез;
   |Группировка Кол;
   |Функция КонКол=КонОст(Кол);
   |Условие (Скл=Склад);
   |Условие (Тара.Вес>0);
   |"//}}ЗАПРОС
   ;
   
   
   //Если  Тогда
   //КонецЕсли;
   
   //Если дтЗапроса < ПолучитьДатуТА() Тогда
   //      ТекстЗапроса = ТекстЗапроса + "Период С дтЗапроса По дтЗапроса;" ;
   //      РассчитатьРегистрыНа(дтЗапроса) ;
   //КонецЕсли;
      
      //Сообщить(ТекстЗапроса);
      Запрос=СоздатьОбъект("Запрос");
      Если Запрос.Выполнить(ТекстЗапроса)=0 тогда
         Возврат;
      КонецЕсли;
      
      Пока Запрос.Группировка("Тов") = 1 Цикл
         Пока Запрос.Группировка("Дл1") = 1 Цикл
            Пока Запрос.Группировка("Дл2") = 1 Цикл
               Пока Запрос.Группировка("Дл3") = 1 Цикл
                  Пока Запрос.Группировка("Тара") = 1 Цикл
                     Пока Запрос.Группировка("НТар") = 1 Цикл
                        Пока Запрос.Группировка("Рез") = 1 Цикл
                           Пока Запрос.Группировка("Кол") = 1 Цикл
                              Если Запрос.КонКол>0 Тогда
                                 тбТара.НоваяСтрока();
                                 тбТара.Тара=Запрос.Тара;
                                 тбТара.НомерТары=Запрос.НТар;
                                 тбТара.Товар=Запрос.Тов;
                                 тбТара.Длина1=Запрос.Дл1;
                                 тбТара.Длина2=Запрос.Дл2;
                                 тбТара.Длина3=Запрос.Дл3;
                                 тбТара.Заказ=Запрос.Рез;
                              КонецЕсли;
                           КонецЦикла;
                        КонецЦикла;
                     КонецЦикла;
                  КонецЦикла;
               КонецЦикла;
            КонецЦикла;
         КонецЦикла;
      КонецЦикла;
      
   
      
КонецПроцедуры
   

//***************************************************************************************************

Процедура ЗаполнитьСклады()
   спрМХ=СоздатьОбъект("Справочник.МестаХранения");
   
   спМХ = СоздатьОбъект("СписокЗначений");
   спрМХ.НайтиПокоду(8, 0);  //Склад ГП №1
    Склад1 = спрМХ.ТекущийЭлемент();
    спрМХ.НайтиПокоду(1, 0);  //Склад ГП №2
    Склад2 = спрМХ.ТекущийЭлемент();
   
   //спМХ.ВыбратьЭлемент();
   //Пока спМХ.ПолучитьЭлемент() = 1 Цикл



      
   
КонецПроцедуры //ПриОткрытии

//------------------------------------------------------------------------------------------- 

Процедура ПриОткрытии()
 ПриЗаписиПерепроводить(1);
    глПроверкаРазрешенияРедактирования(Контекст);
   
    Если Форма.ТолькоПросмотр() = 0 тогда
        Если Проведен() = 1 Тогда
            Сигнал();
            Предупреждение("Внимание!
            |Документ проведен! Возможен только просмотр.
            |Для изменения документа сделайте его сначала непроведенным");
            Форма.ТолькоПросмотр(1);
        КонецЕсли;
    КонецЕсли;
   
   спПлощадка.ДобавитьЗначение(0, "Площадка хранения барабанов Цех №1");
   спПлощадка.ДобавитьЗначение(1, "Площадка хранения барабанов у торца Цеха №1");
   спПлощадка.ДобавитьЗначение(2, "Площадка хранения барабанов №1, Цеха №2");
   спПлощадка.ДобавитьЗначение(3, "Площадка хранения барабанов №4 между конторой и цехом №2");
   спПлощадка.ДобавитьЗначение(4, "Площадка хранения барабанов №5");
   спПлощадка.ДобавитьЗначение(5, "Площадка хранения барабанов №6 Брандербург");
   
   ЗаполнитьХарактеристикиПлощадок();
   
    тбТара = СоздатьОбъект("ТаблицаЗначений");
   тбТара.НоваяКолонка("Товар","Справочник.Номенклатура");
   тбТара.НоваяКолонка("Тара","Справочник.Тара");
   тбТара.НоваяКолонка("НомерТары","Строка",10,0,"№ тары",12);
   тбТара.НоваяКолонка("Длина1","Число",10,4,"Кусок 1",9);
   тбТара.НоваяКолонка("Длина2","Число",10,4,"Кусок 2",9);
   тбТара.НоваяКолонка("Длина3","Число",10,4,"Кусок 3",9);   
   тбТара.НоваяКолонка("Заказ","Документ.Заказ");
   
   
   
   спрМХ=СоздатьОбъект("Справочник.МестаХранения");
   
   спМХ = СоздатьОбъект("СписокЗначений");
   спрМХ.НайтиПокоду(8, 0);  //Склад ГП №1
    Склад1 = спрМХ.ТекущийЭлемент();
    спрМХ.НайтиПокоду(1, 0);  //Склад ГП №2
    Склад2 = спрМХ.ТекущийЭлемент();
   
                         
КонецПроцедуры 


//-----------------------------------------------
Процедура ПриЗаписи()
   Если глМожноЗаписатьДокумент(Контекст) = 0 Тогда
      СтатусВозврата(0);
      Возврат;
   КонецЕсли;
   
   
   Если КоличествоСтрок() = 0 Тогда
      Сигнал();
      Предупреждение("В документе не заполнена табличная часть!
      |Запись документа не разрешена.");
      СтатусВозврата(0);
      Возврат;
   КонецЕсли;
   
   //ПРОВЕРИМ СТРОКИ ДОКУМЕНТА
   ВыбратьСтроки();
   
   Пока ПолучитьСтроку()=1 Цикл
      Если Тара.Вес>0 Тогда
         
         Если СтрДлина(СокрЛП(НомерТары)) < 10 Тогда
            Сигнал();
            Предупреждение("Строка "+НомерСтроки+"
            |Неверный номер тары!
            |Номер тары должен состоять из 10 символов!");
            СтатусВозврата(0);
            Возврат;
         КонецЕсли;
         
         Если (Число(Лев(НомерТары,2)) < 1) или (Число(Лев(НомерТары,2)) > 12) Тогда
            Сигнал();
            Предупреждение("Строка "+НомерСтроки+"
            |Неверный номер тары!
            |Первые два символа номера означают номер месяца!");
            СтатусВозврата(0);
            Возврат;
         КонецЕсли;
         
         Если (Сред(НомерТары,9,1) <> "1") и
         (Сред(НомерТары,9,1) <> "2") Тогда
            Сигнал();
            Предупреждение("Строка "+НомерСтроки+"
            |Неверный номер тары! При сдаче ГП на склад девятый символ номера
            |означает номер цеха и может быть равен ""1"" или ""2""!");
            СтатусВозврата(0);
            Возврат;
         КонецЕсли;
         
         Если (Сред(НомерТары,10,1) <> "0") и
         (Сред(НомерТары,10,1) <> "П") и
         (Сред(НомерТары,10,1) <> "Ц") и
         (Сред(НомерТары,10,1) <> "Р") и
         (Сред(НомерТары,10,1) <> "В") и
         (Сред(НомерТары,10,1) <> "Г") Тогда
            Сигнал();
            Предупреждение("Строка "+НомерСтроки+"
            |Неверный номер тары!
            |Десятый символ номера может быть ""0"", ""П"", ""Ц"", ""Р"", ""В"" или ""Г""!");
            СтатусВозврата(0);
            Возврат;
         КонецЕсли;
         
      КонецЕсли;
   КонецЦикла;
   
   //СохранитьЗначение("СкладГП",Склад);
КонецПроцедуры
//_____________________________________________________________________________
//Процедура ПриОкончанииРедактированияСтроки()
//   Если (Товар.Выбран()=0) или (ДлинаКуска1=0) или (Тара.Выбран()=0) Тогда
//      Сигнал();
//      Предупреждение("Заполните в строке все значения!");
//      СтатусВозврата(0);Возврат;
//   КонецЕсли;
//КонецПроцедуры
//******************************************************************************
Процедура Печать()
   НомерДокПечатнойФормы = глПреобразоватьНомерДок(НомерДок, 0, 0);
   
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Таблица");
   Таб.ВывестиСекцию("Шапка");
   Таб.ВывестиСекцию("Заголовок");
   
   ВыбратьСтроки();
   Ном = 0;
   Пока ПолучитьСтроку()=1 Цикл
      Ном = Ном + 1;
      Таб.ВывестиСекцию("Строка");
   КонецЦикла;
   
   Таб.ВывестиСекцию("Подвал");
   Таб.Опции(0,0,0,0,"ОпцииПечатиСдачаГП","ОкноСдачаГП");
   Таб.ТолькоПросмотр(1);
   Таб.Показать("Печать сдача ГП","");
КонецПроцедуры
//*****************************************************************************
Функция ЗаголовокФормы()
   Перем Заголовок, Название;
   
   
   Заголовок = "Готовая продукция";
   Название = "Готовая продукция №";
   
   Если Выбран() = 1 Тогда 
      Если Проведен() = 1 Тогда
         Заголовок = Заголовок + ".Проведен";
      Иначе
         Заголовок = Заголовок + ".Не проведен";
      КонецЕсли;
   Иначе
      Заголовок = Заголовок + ".Новый";
   КонецЕсли;
   Форма.Заголовок(Заголовок);               
   Возврат Название;
КонецФункции //ЗаголовокФормы
//_____________________________________________________________________________
Процедура ЗаполнитьтбНачСоставЗаказа()
   Перем Запрос, ТекстЗапроса, дЗапроса;
   
   тбНачСоставЗаказа = СоздатьОбъект("ТаблицаЗначений");
   тбНачСоставЗаказа.НоваяКолонка("Продукт");
   тбНачСоставЗаказа.НоваяКолонка("Количество");
   
   Если ДатаДок>ПолучитьДатуТА() тогда
      дЗапроса=ПолучитьДатуТА();
   Иначе
      дЗапроса=ДатаДок;
   КонецЕсли;
   
   ТекстЗапроса = "";
   ТекстЗапроса = ТекстЗапроса +
   "//{{ЗАПРОС(ТекСостояниеЗаказа)
   |Период с дЗапроса по дЗапроса;
   |докЗаказ=Регистр.ЗАКАЗЫ.дкЗаказ;
   |Товар=Регистр.ЗАКАЗЫ.Товар;
   |пзКол=Регистр.ЗАКАЗЫ.Количество;
   |пзКолЗарезервировано=Регистр.ЗАКАЗЫ.КоличествоЗарезервировано;
   |пзКолОтгружено=Регистр.ЗАКАЗЫ.КоличествоОтгружено;
   |Группировка Товар Без Групп;
   |Условие (докЗаказ=Заказ);
   |Функция КонОстКоличество=КонОст(пзКол);
   |Функция КонОстКолЗарезервировано=КонОст(пзКолЗарезервировано);
   |Функция КонОстКолОтгружено=КонОст(пзКолОтгружено);
   |"//}}ЗАПРОС
   ;
   
   Запрос=СоздатьОбъект("Запрос");
   Если Запрос.Выполнить(ТекстЗапроса)=0 тогда
      Возврат;
   КонецЕсли;
   
   Пока Запрос.Группировка("Товар") = 1 Цикл
      Кол=Запрос.КонОстКоличество-Запрос.КонОстКолЗарезервировано-Запрос.КонОстКолОтгружено;
      Если Кол>0 тогда
         тбНачСоставЗаказа.НоваяСтрока();
         тбНачСоставЗаказа.Продукт=Запрос.Товар;
         тбНачСоставЗаказа.Количество=Кол;
      КонецЕсли;
   КонецЦикла;
   
КонецПроцедуры //ЗаполнитьтбНачСоставЗаказа()


//_____________________________________________________________________________
Процедура ПриНачалеВыбораЗначения(ЭлемДиалога,ФлагСтандОбр) 
   
   
   Если ЭлемДиалога="Тара" Тогда      
       ФлагСтандОбр = 0;
       ВыбратьБарабаны();
                        
      Если тбТара.ВыбратьСтроку() = 1 тогда
             Тара=тбТара.Тара;
             НомерТары=тбТара.НомерТары;
      КонецЕсли;
         
   ИначеЕсли ЭлемДиалога="Место" Тогда
      Если (ПустоеЗначение(Тара) = 1) или (ПустоеЗначение(НомерТары) = 1) тогда
      Иначе
         ФлагСтандОбр = 0;
         конВызова=глВзятьКонтекст(Контекст);
         
         
      
         ПередаваемыйКонтекст=СоздатьОбъект("СписокЗначений");
         ПередаваемыйКонтекст.ДобавитьЗначение(конВызова, "КонтекстФормыВызова");
         
         НомПлощадки = спПлощадка.ПолучитьЗначение(спПлощадка.ТекущаяСтрока());
         Если НомПлощадки = 0 тогда
            
            ПередаваемыйКонтекст.ДобавитьЗначение(тбПлощадкаНомер1, "тбПлощадка");     
            
         ИначеЕсли НомПлощадки = 1 тогда
            
            ПередаваемыйКонтекст.ДобавитьЗначение(тбПлощадкаНомер2, "тбПлощадка");
            
         ИначеЕсли НомПлощадки = 2 тогда
            
            ПередаваемыйКонтекст.ДобавитьЗначение(тбПлощадкаНомер3, "тбПлощадка");
            
         ИначеЕсли НомПлощадки = 3 тогда
            
            ПередаваемыйКонтекст.ДобавитьЗначение(тбПлощадкаНомер4, "тбПлощадка");
            
            
         ИначеЕсли НомПлощадки = 4 тогда
            
            ПередаваемыйКонтекст.ДобавитьЗначение(тбПлощадкаНомер5, "тбПлощадка"); 
            
            
         ИначеЕсли НомПлощадки = 5 тогда
            
            ПередаваемыйКонтекст.ДобавитьЗначение(тбПлощадкаНомер6, "тбПлощадка");
            
         КонецЕсли;
         
         ОткрытьФормуМодально("Отчет",ПередаваемыйКонтекст,КаталогИБ()+"ExtForms\ПодборМеста.ert");
         СтатусВозврата(0);
      КонецЕсли;               
   КонецЕсли;
КонецПроцедуры




Оффлайн prog1c7.7

  • Модератор
  • *****
  • Сообщений: 784
  • РЕПУТАЦИЯ: 260
  • КПД: 33%
  • ну - да , ну - да...
  • Регистрация: 2010-10-20
  • Сайт: 
  • Профессия: Программист 1С
 :kmtu:
... вот эт да ...
тут помогать нечем тут надо переделать

Оффлайн Shaman4ik

  • *
  • Сообщений: 2
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-01
  • Сайт: 
  • Профессия: Программист 7.7
Ничего переделывать не надо было просто нужно было в запросе условие добавить и все Которое проверяло выбраную площадку а потом выводила список барабанов для этой площадки.

Оффлайн prog1c7.7

  • Модератор
  • *****
  • Сообщений: 784
  • РЕПУТАЦИЯ: 260
  • КПД: 33%
  • ну - да , ну - да...
  • Регистрация: 2010-10-20
  • Сайт: 
  • Профессия: Программист 1С
надо было, но спорить не буду это полемика уже


Теги:
 


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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

* Топ 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 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal