Вход | Регистрация


Информационные технологии ::

Метки: 

Проблема с подчин.справочником

Я
   Dina
 
18.12.03 - 08:44
Привет всем!
Кто-нибудь решал проблему учета кабеля в торговле?
Есть расходник, есть спр.товаров и подчиненный барабанов. Нужно в расходник записать не просто кабель+количество, а в разбивке- кабель по барабанам+кол-во с барабана... Я что-то застряла с решением, может кто подскажет?
 
  Рекламное место пустует
   Львенок
 
1 - 18.12.03 - 09:48
Чего?
___
Искренне Ваш, Львенок.
   gr13
 
2 - 18.12.03 - 10:22
Ну сделай просто ед. измерений метры и барабаны и все
потом в Табличной части пересчитывай из одной меры в другую, вот в общих чертах
   Dina
 
3 - 18.12.03 - 12:25
Увы! Всё не так просто - учет нужен по каждому барабану в отдельности.К тому ж метраж каждого барабана разный.+ контроль на остаток.
   skunk
 
4 - 18.12.03 - 12:44
а коэфицент почему используешь
   skunk
 
5 - 18.12.03 - 12:45
Блин, надо спать ложиться. Коэффициент в ед.из. почему не используешь.
   gr13
 
6 - 18.12.03 - 12:52
а если вести учет в барабанах, да длину кабеля выставлять программно. Т.е. дополнительное свойство у Товара Барабан Длина кабеля. Соответственно,программно списывать этот остаток.
Чего то намудрил, но подумать стоит

Или в Регистре, указывать в этом случае свойство ДлинаКабеля, которая заводится при приходе, а списывается в расходной накладной, вот это уже ближе
Т.е в РасходнойНакладной мы в поле количество указываем длину списываемого кабеля (естественно с контролем остатка) потом в МодулеДокумента списываем сответствующее количество барабанов.
Объясни точнее так будет? или не так?

В принципе при использовании партионного учета возможно сделать этот учет с точностью до барабана, т.е. при списывании мы видим список барабанов, и выбираем какой необходимо, и именно он списывается.
Насколько помню в одном из экзаменационных заданий про партионный учет по 1с было нечто подобное, правда я их потерял и так и не сделал.
Удачи
   Dina
 
7 - 18.12.03 - 13:24
А зачем мне коэф-т? ну пересчитает, ну получу я общий метаж, а мне нужно в разрезе, т.е. в расходник должно попасть не только НАИМЕНОВАНИЕ КАБЕЛЯ ,а ещё и с какого, конкретно, барабана и сколько метров отмотать.
Т.е. рациональнее всего вести подчиненный спрк по позиции товара. Отпущенный барабан становится невидимым.
Сбытовик же должен иметь возможность выбора барабана и отмотки с него. При подборе позиции из спр-ка товара,я вваливаюсь в подчиненный спрк, делаю подборку(список значений), а вот втащить его в документ не могу...похоже что прооблема в возможностях ф-ии обработкки подбора....
   skunk
 
8 - 18.12.03 - 13:32
Нет там никакой философии обработки подбора.

Покажи, как ты делаешь подбор. То есть все основные движения по передачи данных между справочниками и документом.
   Dina
 
9 - 18.12.03 - 14:04
(функции, какая философия?)

Есть спр.товаров.Товар есть кабель и есть не кабель. Из документа по подбору попадаю в спр.товаров,
если позиция не кабель, запрашиваю кол-во и переход на след позицию или выход.Наименование товара и кол-во - в расходнике.Проблем нет.
иначе если кабель - откывается форма подчиненного по бухтам и кабелю.( туда записываетс я при оформлении прихода). Через таблицу подбора формирую список необходимых барабанов и отмоток. либо целиком...(здесь планирую перенос этого списка в документ) и всё - стопор,преносится только наименование кабеля , а инфа по барабанам не переносится...
   gr13
 
10 - 18.12.03 - 14:22
(9) объясни: ты же переносишь наименование кабеля через регистры? А через что ты пытаешься перенести Барабаны?
 
  Рекламное место пустует
   leo
11 - 18.12.03 - 14:32
Вообще барабаны должны выступать в качестве складов. Разных складов. НАпример:
Барабан1 -- это барабан 1 метр в диаметре
Барабан2 -- это барабан 2 метр в диаметре
Вот и веди движение и остатки через эти склады
Если не по барабанам, то сделай др.склады
   gr13
 
12 - 18.12.03 - 14:35
(11) ты хоть представляешь, а если у тебя будет 100 различных барабанов, ты заведешь 100 складов?
   skunk
 
13 - 18.12.03 - 14:37
даю мыло скинь мне на него свои модули по обработке подбора
   skunk
 
14 - 18.12.03 - 15:39
мыло, получил посмотрим что можно сделать. На первый взгяд в основе лежит стандартная ТиС. Я прав.
   gr13
 
15 - 18.12.03 - 15:42
Сообщи хоть как решил
   Dina
 
16 - 18.12.03 - 15:48
от стандартной практически нет ничего, это я уже с созданием таблицы подбора к стандартной обращалась....и искала что-нибудь подобное.
   skunk
 
17 - 18.12.03 - 16:58
я так понял ты еще в интернете. у тебя аськи случайно нет. надо кое что уяснитью
   gr13
 
18 - 18.12.03 - 17:02
Пускай она тебе вышлет DD and MD и этого будет достаточно, может быть
   skunk
 
19 - 18.12.03 - 17:04
А вдруг там md весит тонн 20 я его как раз к япоской пасхи и выкачаю. :)
Мне просто надо одюн нюанс обживать, чтоб до конца идею понять.
   skunk
 
20 - 18.12.03 - 21:18
Ладно, пытаемся разобрать из того, что есть. А что у нас есть. Две банки пива "Старый мельник". Картинка окна диалога, какого-то документа, в конфигураторе. Куча пока не понятных процедур. Время близиться к 18:30, а значит, скоро будет, как я не спал 48 часов. Ладно, в армии и по более не спали, а там пиво не было.  Поставленная задача – интересно, какая, надо сделать, то не знаю, что. Ха! Открываем пиво и начинаем думать. Потому что мысль – она МЫСЛЬ. Во как сказано!
Итак, первым делом……… первым делом……… самолеты, ну а девушек, а девушек потом.
Открываем пиво, одновременно запуская конфигуратор. Копируем туда кучу текста и начинаем приводить его в божеский вид. Кто-то тут на форуме сказал, этажеркой строим.
Смотрим на текст и видим, а что мы видим. Нефига мы там не видим. Только еще больше начинаю путаться.
Хм.…… По пробуем аналогичное натворить сами. Создадим два справочника. Один обзовем "Товар" другой "Тара". "Тару" подчиним "Товару". Для чистоты эксперимента добавим к ним по паре реквизитов. (А в это время на форуме кипят страсти, Алла собирается сделать обрезания Универсальному солдату по поводу глючности его тети Аси. Кошмар, что в мире твориться). Из картинки конфигуратора, блин, а картинка то оказывается форма подчиненного справочник для подбора. Все, надо больше спать. Ну да ладно, одно другому не помеха. Итак, создаем следующие реквизиты:
"Товар"
 Цена – "Число", 10, 2
"Тара"
 ТипУпаковки – "Строка", 10
 Метраж – "Число", 10, 0
Для обоих справочников создаем формы списка, чтоб потом можно было вводить данные для проверки. Чтобы долго не думать создал обычным списком, выкинув на него все доступные реквизиты. Да, чуть не забыл в "Товаре" поставил в поле количество уровней два. Запускаем эсину, чисто для проверки работы справочников. При проверке создаем в "Товаре" две группы "Кабель" и "Другой товар". Далее в "Кабеле" создаем элемент - "АВВГ" по цене 10.00. А в "Другом товаре" – "Лампочка 60 Вт" по цене 4.50.  Так теперь в подчиненном "АВВГ" справочнике "Тара" создадим два элемента 1) "бобина 100" "упк 100" 100 и 2) "бобина 200", "упк 200", 200.
Так пока справочники отложим в сторону, займемся документом. (На форуме твориться жуть, даже страшно смотреть. Дина так и не появилась. Придется думать самому, как дальше жить).
Документ. Что нам в нем надо. Ага. Чего, сколько, по какой цене, и на какую сумму продали. Да клиент просил, если кабель, то еще тип упаковки и количество упаковок туда же затолкать. Лады. Создаем документ "Реализация" а в нем следующие реквизиты:
 Товар – "Справочник.Товар"
 Кол – "Число", 10, 2
 Цена – "Число", 10, 2
 ТипУпаковки – "Справочник.Тара"
 Метраж – "Число", 10, 0
 Итог – "Число", 10, 0
 Сумма – "Число", 10, 2
Ну, в принципе для понимания происходящего достаточно. Создаем форму документа, все кидаем туда и делаем большую кнопку ПОДБОР. Ну, вроде с дизайном покончено. Приступим к программированию. (Блин, пиво кончилось. Придется сосать сосасолу. На форуме Алла согласилась с моим мнением, что зарплаты у нас геморрные, попутно объяснив Мистику, где ему искать оклад. Затянувшись очередным самцом, стал думать мысль, потому что она МЫСЛЬ, на месте стоять не любит, может и уйти).

Главное для нас сделать подбор. Поэтому на кнопку ПОДБОР вещаем процедуру ПоКнопкеПодбор(). и лезем в модуль документа. Не знаю, как, кто поступил бы здесь. А я решил все подбирать, через Глобальный модуль. Оставив в модуле документа только следующую процедуру:
//****************************************
Процедура ПоКнопкеПодбор()
 глПодбор(Контекст);
КонецПроцедуры

А в глобальном модуле создал процедуру:
//****************************************
Процедура глПодбор(Конт)  Экспорт
   Конт.ОткрытьПодбор("Справочник.Товар", "ФормаСписка", , 0);
КонецПроцедуры

Время 20:34 с подбором закончили, теперь будем его обрабатывать. А как обрабатывать опять таки через глобальный модуль. Творим в модуле документа следующее:
//****************************************
Процедура ОбработкаПодбора(ВыбЗнач)
   глОбработкаПодбора(Контекст, ВыбЗнач);
КонецПроцедуры

И опять в глобальный модуль. Там создаем следующее:
//****************************************
Процедура глОбработкаПодбора(Конт, ВыбЗнач)  Экспорт
КонецПроцедуры

и начинаем думать, что нам здесь обрабатывать. По идеи мы должны получить из товара элемент проверить принадлежит ли он кабелям, и если нет, то спросить, сколько его хотим продать. Лады. В процедуре глОбработкаПодбора вставляем следующие строки.

//****************************************
Если СокрЛП(ВыбЗнач.Родитель.Наименование) <> "Кабель" Тогда
 Сколько = 0;
 Если ВвестиЧисло(Сколько, "Введите количество", 10, 2) < 1 Тогда
   Возврат;
 КонецЕсли;
 Конт.НоваяСтрока();
 Конт.Товар = ВыбЗнач;
 Конт.Кол = Сколько;
 Конт.Цена = ВыбЗнач.Цена;
 Конт.ТипУпаковки = ПолучитьПустоеЗначение("Справочник.Тара");
 Конт.Метраж = 0;
 Конт.Итого = Сколько;
 Конт.Сумма = Сколько * ВыбЗнач.Цена;
Иначе
КонецЕсли;
Конт.АктивизироватьСтроку();

Надеюсь, данный код у вас затруднений не вызывает. А у нас впереди самое интересное. Обработать множественный выбор из подчиненного справочника. Во загнул, то. Блин, итак нельзя и эдак не можно. Извечный вопрос "Что делать?". Ответ: "Снимать трусы и бегать". (Я не буду здесь описывать все свои изголения, просто покажу конечный результат).
Открыть подбором справочник нам не катит. Так как надо выбрать кучу параметров, поэтому мы его откроем через "ОткрытьФормуМодально". Сразу становиться ясно, что просто форма списка нам не катит. Значит, лепим "Таре" форму подбора. В принципе она полный аналог формы списка, только снизу добавим таблицу значений, куда будем отбирать значения. Да сделаем три кнопки, "кому надо добавьте, сколько надо", "ДОБАВИТЬ", "УДАЛИТЬ", "ВЫБРАТЬ", "ОТМЕНА". Назначение кнопок, думаю, понятно, но на всякий случай, для тех, кто в танке. "Добавить" – добавить к Таблице передаваемое значение. "Удалить" – удаляет из Таблицы текущее значение. "Выбрать" – передает ТаблицуЗначений процедуре обработки подбора. "Отмена" – отмена, она и в Африке отмена.
Вернемся к нашим баранам. Между строк "Иначе" и "КонецЕсли" добавим следующее, это для открытия справочника "Тара":

Значение = "";
ОткрытьФормуМодально("Справочник.Тара.ФормаПодбора", Значение);

Справочник открыли. Да неплохо бы было в таблице сразу поставить нужные колонки. Где это лучше сделать, конечно, при открытии формы. Смотрим, что нам надо передать в документ: "ТипУпаковки", "Метраж", "КоличествоУпаковок". Вери гуд. В модуле формы подбора  добавляем процедуру:

//****************************************
Процедура ПриОткрытии()
 ТабЗнач.НоваяКолонка("Тара", "Справочник.Тара");
 ТабЗнач.НоваяКолонка("Метраж", "Число", , , , 10);
 ТабЗнач.НоваяКолонка("Количество", "Число", , , , 10);
КонецПроцедуры

Время 21:45. Страсти на форуме накаляются. У меня осталось на все про все чуть больше двух часов. Надо быстрее рожать. Принимаем роды.
На кнопку "Добавить" вешаем процедуру ПоКнопкеДобавить()
//****************************************
Процедура ПоКнопкеДобавить()
 Сколько = 0;
 Если ВвестиЧисло(Сколько, "Введите количество", 10, 2) < 1 Тогда
   Возврат;
 КонецЕсли;
 Что = ТекущийЭлемент();
 ТабЗнач.НоваяСтрока();
 ТабЗнач.Тара = Что;
 ТабЗнач.Метраж = Что.Метраж;
 ТабЗнач.Количество = Сколько;
КонецПроцедуры

На кнопку "Удалить" вешаем процедуру ПоКнопкеУдалить()
//****************************************
Процедура ПоКнопкеУдалить()
   Если ТабЗнач.КоличествоСтрок() = 0 Тогда
       Возврат;
   КонецЕсли;
   ТабЗнач.УдалитьСтроку(ТабЗнач.ТекущаяСтрока());
КонецПроцедуры

На кнопку "Отмена" просто ставим команду #Закрыть.

Их бен, осталось самое главное передать таблицу в документ. Для это вешаем на кнопку "Выбрать" процедуру ПоКнопкеВыбрать()

//****************************************
Процедура ПоКнопкеВыбрать()
 Если ТабЗнач.КоличествоСтрок() > 0 Тогда
   Форма.Параметр = ТабЗнач;
 КонецЕсли;
 Форма.Закрыть()
КонецПроцедуры

Теперь в глобальном модуле обработаем полученную таблицу. По концове получим следующую обработку подбора:

//****************************************
Процедура глОбработкаПодбора(Конт, ВыбЗнач)  Экспорт
 Если СокрЛП(ВыбЗнач.Родитель.Наименование) <> "Кабель" Тогда
   Сколько = 0;
   Если ВвестиЧисло(Сколько, "Введите количество", 10, 2) < 1 Тогда
     Возврат;
   КонецЕсли;
   Конт.НоваяСтрока();
   Конт.Товар = ВыбЗнач;
   Конт.Кол = Сколько;
   Конт.Цена = ВыбЗнач.Цена;
   Конт.ТипУпаковки = ПолучитьПустоеЗначение("Справочник.Тара");
   Конт.Метраж = 0;
   Конт.Итого = Сколько;
   Конт.Сумма = Сколько * ВыбЗнач.Цена;
 Иначе
   Значение = "";
   ОткрытьФормуМодально("Справочник.Тара.ФормаПодбора", Значение);
   Если ТипЗначения(Значение) = 100 Тогда
     КолСтр = Значение.КоличествоСтрок();
     Для х = 1 По КолСтр Цикл
       Конт.НоваяСтрока();
       Конт.Товар = ВыбЗнач;
       Конт.Кол = Значение.ПолучитьЗначение(х, "Количество");
       Конт.Цена = ВыбЗнач.Цена;
       Конт.ТипУпаковки = Значение.ПолучитьЗначение(х, "Тара");
       Конт.Метраж = Значение.ПолучитьЗначение(х, "Метраж");
       Конт.Итого = Конт.Кол * Конт.Метраж;
       Конт.Сумма = Конт.Кол * ВыбЗнач.Цена;
     КонецЦикла;
   КонецЕсли;
 КонецЕсли;
 Конт.АктивизироватьСтроку();
КонецПроцедуры

Ну, вроде все. Время 22:17. Мы имеем пять листов вордовского текста и вроде бы решенную задачу. Надеюсь, что я понял Дину правильно. А если это не так, то хотя бы показал в какую сторону надо плыть.

Всем удачи!
   skunk
 
21 - 18.12.03 - 21:19
(0)На всякий случай высылаю тебе md с данным примером. Надеюсь, что помог.
   Dina
 
22 - 19.12.03 - 06:46
(skunk)
ОГРОМНОЕ тебе спасибо - суть уловил и выход показал,это примерно то что нужно. Щас буду ваять...
Пока
   gr13
 
23 - 19.12.03 - 08:26
(19) заархивировать не судьба? займет 1, 2 дискетки в архиве
   skunk
 
24 - 23.12.03 - 18:20
(22)не за что. рад, что помог.
(23)не понял, что заархивировать.
   AndreyAL
 
25 - 28.09.04 - 21:50
Здравствуйте!
Долго и упорно и, к сожалению, безуспешно ищу программное обеспечение для организации торгующей кабель-проводниковой продукцией. С тем что у нас есть нормально работать невозможно! Руководство наседает... Может кто в состоянии помочь мне?

Заранее огромное СПАСИБО!!!
   GrayT
 
26 - 28.09.04 - 22:55
Вот и покупатель нашелся :)



Список тем форума
Рекламное место пустует   Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует