8.х РегистрСведений

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем quazare, 6 апр 2009.

  1. TopicStarter Overlay
    quazare
    Offline

    quazare Опытный в 1С

    Регистрация:
    21 мар 2009
    Сообщения:
    95
    Симпатии:
    0
    Баллы:
    26
    Народ, привет!
    Ситуация такая - при проведении документа оприходывания - документ идет по 2-ум регистрам - партии на складах (рн) и регистр размещения партии (рс).

    Подскажите как правильнее сделать - когда у меня идет списание партии со склада (другим документом), как удалить ее размещение из регистра сведений.

    Регистр я выбрал непериодический - может это не правильно?
  2. tunec
    Offline

    tunec Опытный в 1С

    Регистрация:
    2 июн 2008
    Сообщения:
    469
    Симпатии:
    0
    Баллы:
    26
    а че за регистр размещение партий??? какое у него назначение/смысловая нагрузка?
  3. TopicStarter Overlay
    quazare
    Offline

    quazare Опытный в 1С

    Регистрация:
    21 мар 2009
    Сообщения:
    95
    Симпатии:
    0
    Баллы:
    26
    регистр сведений - для размещения партий - смысловая нагрузка в том, чтобы определить местоположение номенклатуры.

    измерения
    -номенклатура
    -склад
    -характеристика
    ресурсы
    -ряд
    -стеллаж
    -уровень
  4. Melanto
    Offline

    Melanto Опытный в 1С

    Регистрация:
    28 ноя 2007
    Сообщения:
    204
    Симпатии:
    0
    Баллы:
    26
    Главная мысль, которая меня посетила - как уговорить работников склада забирать товар именно из того размещения, с которого вы спишите.
    Указывать в Упаковочном Листе или в Расходной накладной...

    Да, еще. Характер номенклатуры? Вдруг на №полке в № ряду лежит 6 штук чего-то, 2 забрали - стирать записть из регистра сведений? Тогда 4 штуки будут потеряны ....
  5. tunec
    Offline

    tunec Опытный в 1С

    Регистрация:
    2 июн 2008
    Сообщения:
    469
    Симпатии:
    0
    Баллы:
    26
    смешной регистр. А что номенклатура с одной характеристикой не может на одном складе лежать на разных уровнях одного стеллажа? У вас именно так и получается :)

    Если я правильно понимаю, то возможнор нужен регистр накопления все-таки.... ряд, стрелаж и уровень в измерения, в ресурсы количество... хотя если списание идет целыми блоками, то тогда можно использовать и регистр сведений: ряд, стеллаж, уровень в измерения.... ресурсов нет. Регистр непереодический без подчинения регистратору. Первый документ делает запись о присутствии номенклатуры на нужном месте, а вторым эта записьудаляется.

    Обобщил вопросы:
    1) как происходит списание? спичывается уровень стеллажа сразу или с уровня понемногу номенклатура?
    2) лежит ли одинаковая номенклатура (в т.ч. по хар-ке) на разных рядах/стеллажах/уровнях
    3) могут ли на одном уровне одного стеллажа и ряда на одном складе лежать разные номенклатуры?

    П.С лично я бы делал наверно все-таки через регистр накопления.... И остатки снять можно по стеллажам. И видно движения номенклатуры. И обороты можно посмотреть....
  6. TopicStarter Overlay
    quazare
    Offline

    quazare Опытный в 1С

    Регистрация:
    21 мар 2009
    Сообщения:
    95
    Симпатии:
    0
    Баллы:
    26
    Характер номенклатуры - ТНП. Вопрос то был с следующем - как удалить из регистра сведений содержание по номенклатуре, если номенклатура партии стала равна нулю. И правильно ли я сделал - когда выбрал непериодичность... может все-таки периодичный регистр??
  7. TopicStarter Overlay
    quazare
    Offline

    quazare Опытный в 1С

    Регистрация:
    21 мар 2009
    Сообщения:
    95
    Симпатии:
    0
    Баллы:
    26
    Кстати, да - мысль - остатки по стеллажам можно снять - тогда регистр накопления (остатки) точно...
    обороты по стеллажам - дело не нужное вроде...

    там кстати не на номенклатуре чистой завязано, а на партиях...

    исходим из соображений - 1 партия - 1 ячейка.

    Когда партия заканчивается - ячейка - освобождается.

    все-таки должен быть какой-то определенный контроль пустых ячеек - только пока не понятно в каком виде...
  8. Melanto
    Offline

    Melanto Опытный в 1С

    Регистрация:
    28 ноя 2007
    Сообщения:
    204
    Симпатии:
    0
    Баллы:
    26
    Вот для контроля как раз регистр накопления подходит - если ноль - ячейка пустая....
  9. tunec
    Offline

    tunec Опытный в 1С

    Регистрация:
    2 июн 2008
    Сообщения:
    469
    Симпатии:
    0
    Баллы:
    26
    Если нужно контролировать пустые и нельзя воспользоваться выражением отрицания НЕ <ВыборкаЗаполненных>, тогда тебе придется держать в базе список всех возможных ячеек (в виде регистра сведений, справочника или еще как) и соединением подбирать заполненные и потом отсеивать их...
  10. TopicStarter Overlay
    quazare
    Offline

    quazare Опытный в 1С

    Регистрация:
    21 мар 2009
    Сообщения:
    95
    Симпатии:
    0
    Баллы:
    26
    так и есть, у меня создан справочник "склад", в котором можно добавить склады и расписать все ячейки в них..
    только пока не понятно как проверять пустая/непустая ячека в складе в формате "справочника"...
    ???
  11. x_under
    Offline

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    На РС адресного хранения ты не сделаешь.
    Вот тебе пример: проводишь списание (записи исчезли), отменяешь проведение (и откуда система будет брать их)???
    Нужен регист накопления типа остатков товаров.
  12. tunec
    Offline

    tunec Опытный в 1С

    Регистрация:
    2 июн 2008
    Сообщения:
    469
    Симпатии:
    0
    Баллы:
    26
    А как "расписываются" ячейки на складе? поподробнее именно на том, как хранятся записи в базе.

    НАПРИМЕР
    по общим числам, т.е.:
    Код:
    //1
    склад1
    Ряд1
    Стеллаж 1
    3 уровня
    Стеллаж 2
    3 уровня
    Стеллаж 3
    1 уровень
    Ряд 2
    ...............................
    
    ИЛИ общие записи

    Код:
    //2
    Склад1
    Рядов 10
    Стеллажей в ряде 50
    Уровней в стеллаже 5
    Склад2
    .....................................
    
    
    или данные каждой ячейки вводятся:
    Код:
    //3
    Склад1 ряд1 стеллаж1 уровень1
    Склад1 ряд1 стеллаж1 уровень2
    Склад1 ряд1 стеллаж1 уровень3
    Склад1 ряд1 стеллаж2 уровень1
    Склад1 ряд1 стеллаж2 уровень2
    Склад1 ряд2 стеллаж1 уровень1
    .........................................
    
    или еще как-нить?

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

    В случае 2 описывается "идеальный" склад. Наверняка наступит время, когда количество стеллажей в разных рядах будет разным. Это приведет к тому, что придется все переделывать

    В случае 3 визуальное представление неудобное, но для базы самая оптимальная (ИМХО) запись, т.к. не надо получать подробные записи, они уже присутствуют например в регистре сведений... Легко создается дерево значений. Легко использовать отборы. Я бы использовал ее. Данные заносил бы документом. например "установка параметров склада"....

    Мож еще как у Вас? я привел те что в голову пролезли....

    вот лично мое мнение - попытаться обойтись без полного перечисления доступных ячеек. Иначе со времененм постоянно придется их редактировать... Да и долго это. Лучше выдавать в отчеты занятые места, а юзер уж сам догонит, что остальные свободные.... Или общие числа типа
    СвободныхЯчеек = ВсегоМест - ЗанятоМест

    Другое дело, если юзер не в курсе на каком складу скоко местов, а ему надо знать не общие цифры а непосредственно номера мест. Тогда придется морочится.
  13. vitaly_mnpz
    Offline

    vitaly_mnpz Опытный в 1С

    Регистрация:
    15 фев 2009
    Сообщения:
    267
    Симпатии:
    0
    Баллы:
    26
    Вы тут, я так понимаю, решили подсистему логистики склада в форуме набросать? :unsure:
  14. tunec
    Offline

    tunec Опытный в 1С

    Регистрация:
    2 июн 2008
    Сообщения:
    469
    Симпатии:
    0
    Баллы:
    26
    именно. А то человек мучается. Хочет все на одном регистре сведений сделать и справочнике. Проще сразу попытаться направить по нормальному пути, потом меньше тем новых будет :)
  15. TopicStarter Overlay
    quazare
    Offline

    quazare Опытный в 1С

    Регистрация:
    21 мар 2009
    Сообщения:
    95
    Симпатии:
    0
    Баллы:
    26
    Народ все гораздо проще.

    Все свелось к написанию такой функции, только ее надо маленько доработать - помогите плиз:

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

    Вот так:

    Код:
    Процедура ТоварыТипГруппыПриИзменении(Элемент)
    // Вставить содержимое обработчика.
    СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные;	
    ПараметрВыбора = СтрокаТабличнойЧасти.ТипГруппы;
    
    
    Запрос= Новый Запрос(
    "ВЫБРАТЬ
    |	СкладыКомпанииЯчейки.ПолноеНаименование КАК Наименование
    |ИЗ
    |	Справочник.СкладыКомпании.Ячейки КАК СкладыКомпанииЯчейки
    |ГДЕ
    |	СкладыКомпанииЯчейки.ТипЯчейки = &ТипЯчейки"
    );
    Запрос.УстановитьПараметр("ТипЯчейки", ПараметрВыбора);
    
    Результат=Запрос.Выполнить().Выбрать();
    
    Пока Результат.Следующий() Цикл
    
    Сообщить(Результат.Наименование);
    
    КонецЦикла;
    
    //СтрокаТабличнойЧасти.Место = Результат.Наименование;
    
    
    
    КонецПроцедуры
    
    
    

    СтрокаТабличнойЧасти.Место = Результат.Наименование; - проблема в этой строчке, как сформировать выпадающий список ???

    спасибо!
  16. vitaly_mnpz
    Offline

    vitaly_mnpz Опытный в 1С

    Регистрация:
    15 фев 2009
    Сообщения:
    267
    Симпатии:
    0
    Баллы:
    26
    Определяешь элемент формы, который будет предлагать список для выбора
    Объявляешь ему использование:
    Код:
     ЭлементыФормы.НашЭлемент.КнопкаСпискаВыбора = Истина;
    
    Потом инициализируешь список: список значений, заполненный произвольными значениями
    Назначаешь этот список списком выбора элементу формы:
    Код:
    ЭлементыФормы.НашЭлемент.СписокВыбора = НашСписокЗначений;
    
  17. TopicStarter Overlay
    quazare
    Offline

    quazare Опытный в 1С

    Регистрация:
    21 мар 2009
    Сообщения:
    95
    Симпатии:
    0
    Баллы:
    26
    Код:
    НашСписокЗначений = Новый СписокЗначений;
    
    
    Пока Результат.Следующий() Цикл
    
    НашСписокЗначений.Добавить(Результат.Наименование);
    
    КонецЦикла;
    
    //СтрокаТабличнойЧасти.Место.КнопкаСпискаВыбора = Истина;
    СтрокаТабличнойЧасти.Место.СписокВыбора = НашСписокЗначений;
    
    
    У меня список значений в таблице вот так:

    Не получается добавить ((

    Пишет

    Код:
    {Документ.ПоступлениеТоваров.Форма.ФормаДокумента(99)}: Значение не является значением объектного типа (КнопкаСпискаВыбора)
    СтрокаТабличнойЧасти.Место.КнопкаСпискаВыбора = Истина;
    
  18. TopicStarter Overlay
    quazare
    Offline

    quazare Опытный в 1С

    Регистрация:
    21 мар 2009
    Сообщения:
    95
    Симпатии:
    0
    Баллы:
    26
    Вообщем народ, я так и не понял - как сделать выпадающий список на основе выборки, прошу помощи по-прежднему в этом вопросе - сообщает ошибку, которая указана выше.

    Для решения задачи мне пришлось сделать проверку следующим образом (при вводе ячейки адресного хранения). Выкладываю код - мож кому понадобится:

    Код:
    Процедура ТоварыМестоПриИзменении(Элемент)
    
    СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные;	
    
    ПолноеНаименование = СтрокаТабличнойЧасти.Место;
    
    ТипПродукта = СтрокаТабличнойЧасти.ТипГруппы;
    
    Запрос = Новый Запрос("ВЫБРАТЬ
    |	СкладыКомпанииЯчейки.ТипЯчейки КАК ТипЯчейкиВыбор,
    |	СкладыКомпанииЯчейки.Наполнение КАК Наполнение
    |ИЗ
    |	Справочник.СкладыКомпании.Ячейки КАК СкладыКомпанииЯчейки
    |ГДЕ
    |	СкладыКомпанииЯчейки.ПолноеНаименование = &ПолноеНаименование");	
    
    Запрос.УстановитьПараметр("ПолноеНаименование", ПолноеНаименование);
    
    Результат=Запрос.Выполнить().Выбрать();
    
    
    Пока Результат.Следующий() Цикл
    
    ВыбранныйТипЯчейки = Результат.ТипЯчейкиВыбор;
    ВыбранныйТипНаполнения = Результат.Наполнение;
    
    КонецЦикла;
    
    Если ВыбранныйТипЯчейки <> ТипПродукта или ВыбранныйТипНаполнения = Истина тогда
    
    СтрокаТабличнойЧасти.Место="";
    Предупреждение("Ячейка не соответствует типу, ячейка заполнена или не существует!");
    
    КонецЕсли;
    
    
    КонецПроцедуры
    
  19. tunec
    Offline

    tunec Опытный в 1С

    Регистрация:
    2 июн 2008
    Сообщения:
    469
    Симпатии:
    0
    Баллы:
    26
    выдернул из кода.

    СписокДляВыбора = новый СписокЗначений;
    Элементсписка = СписокДляВыбора.Добавить("Документы","Документы");
    Элементсписка = СписокДляВыбора.Добавить("Справочники","Справочники");
    ЭлементыФормы.ВыборДанных.СписокВыбора = СписокДляВыбора;
  20. vitaly_mnpz
    Offline

    vitaly_mnpz Опытный в 1С

    Регистрация:
    15 фев 2009
    Сообщения:
    267
    Симпатии:
    0
    Баллы:
    26
    Ну естессно.
    СтрокаТабличнойЧасти.Место - Это данные. А нас интересует элемент управления.
Похожие темы
  1. OIT
    Ответов:
    9
    Просмотров:
    680
Загрузка...

Поделиться этой страницей