Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Возможность выбора регистратора партии (из регистра ОстаткиПоПартиям)          
Salex Подменю пользователя
сообщение 15.02.11, 16:20
Сообщение #1

Говорящий
Иконка группы
Группа: Местный
Сообщений: 66
Из: Харьков
Спасибо сказали: 113 раз
Рейтинг: 0

Добрый день!
Прошу помочь начинающему программисту 1С

Суть задачи:
1. Имеется регистр Остатков, в котором ведется учет по партиями
2. Учетная политика предполагает идентифицированное списание материалов (из конкретной партии, которую должен указать пользователь)
3. Пользователь в документе ВыпускПродукции в ТабличномПоле должен указать какие материалы были потрачены: Материал, Количество, Партия
4. Связываю метаданные: Материал-Тип:Справочник.Номенклатура.Ссылка
Количество -Тип:Числовой
Партия - НЕ МОГУ ПРИДУМАТЬ - пользователь должен выбрать партию из выпадающего списка. Этот список я получаю запросом из регистра Остатков (чтобы в списке были только те партии по которым есть остатки)
Вопросы следующие:
Какой тип должен быть у ПоляВвода, предназначенного для введения партии
Как подсунуть этому полю массив РегистраторовПартии

Заранее благодарен за любую помощь!!!

Vofka Подменю пользователя
сообщение 15.02.11, 16:32
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4520 раз
Рейтинг: 3642.8

Для начала, вы б, конфигурацию указали, а то сейчас тема для Марата. Наверняка у вас этот мехнизм есть, вы просто не знаете как ним воспользоваться.

Salex Подменю пользователя
сообщение 15.02.11, 16:36
Сообщение #3

Говорящий
Иконка группы
Группа: Местный
Сообщений: 66
Из: Харьков
Спасибо сказали: 113 раз
Рейтинг: 0

Конфигурацию делаю с нуля на платформе 8.1 (мой шеф наотрез отказался от типовой)

Flexy Подменю пользователя
сообщение 15.02.11, 16:42
Сообщение #4

Танцор с Бубном
Иконка группы
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 230 раз
Рейтинг: 0

А если сделать что-то типа Процедуры подбора?Которая будет заносить Таблицу значений в поле ввода?

Спасибо сказали: Salex,

Vofka Подменю пользователя
сообщение 15.02.11, 16:42
Сообщение #5

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4520 раз
Рейтинг: 3642.8

Цитата
Конфигурацию делаю с нуля на платформе 8.1

Тогда здесь в 2 словах не объяснить. Смотрите типовые конфигурации.

Цитата
мой шеф наотрез отказался от типовой

Да уж. А можно узнать причину отказа (интересно просто)?

Спасибо сказали: Salex,

Salex Подменю пользователя
сообщение 15.02.11, 16:59
Сообщение #6

Говорящий
Иконка группы
Группа: Местный
Сообщений: 66
Из: Харьков
Спасибо сказали: 113 раз
Рейтинг: 0

To Flexy - Спасибо за идею с подбором- завтра поковыряюсь, мож че-то и получится smile.gif)

zetovich Подменю пользователя
сообщение 15.02.11, 20:39
Сообщение #7

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 718
Из: Северодонецк
Спасибо сказали: 121 раз
Рейтинг: 0

Не майтесь ерундой. Начинающий и "с нуля" не вяжется.
По делу:
"Какой тип должен быть у ПоляВвода, предназначенного для введения партии
Как подсунуть этому полю массив РегистраторовПартии"
тип ДокументСсылка
в обработчик НачалоВыбораИзСписка пихаем что то типа:

Сп = Новый СписокЗначений();
Сп.Добавить(Док1);
Сп.Добавить(Док2);
Сп.Добавить(Док3);
        
Элемент.СписокВыбора = ФормыОплаты;

Salex Подменю пользователя
сообщение 17.02.11, 17:03
Сообщение #8

Говорящий
Иконка группы
Группа: Местный
Сообщений: 66
Из: Харьков
Спасибо сказали: 113 раз
Рейтинг: 0

Тип у ПоляВвода - составной = (ДокументСсылка.ПоступлениеТоваров, ДокументСсылка.Оприходование, ДокументСсылка.Выпуск)

Работу реализовал через подбор. Все очень довольны.

Теперь по делу:

1. Создал Обработку "ПодборПартии"
2. Создал Форму этой обработки (ФормаПодбора),
на этой форме разместил ТабличноеПоле с именем "ОстаткиПоПартиям"
на вкладке Реквизиты формы добавил реквизиты: Дата, Номенклатура, Характеристика, Склад.
В созданные реквизиты я из формы ВыпускПродукции передаю данные, которые в обработке ПодборПартии используются как параметры запроса

теперь коды:

1.на событие ПриОкрытии формы "ПодборПартии"

Процедура ПриОткрытии()
    ПолучитьОстатки(Номенклатура, Дата, Характеристика,Склад);
КонецПроцедуры


2. Сама процедура ПолучитьОстатки:
Процедура ПолучитьОстатки(Номенклатура,Период, Характеристика,Склад)

Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    Остатки.Партия,
                   |    СУММА(Остатки.КоличествоОстаток) КАК Остаток,
                   |    Остатки.СуммаОстаток КАК Сумма,
                   |    СУММА(Остатки.СуммаОстаток / ЕСТЬNULL(Остатки.КоличествоОстаток, 1)) КАК Цена
                   |ИЗ
                   |    РегистрНакопления.ПартииТоваровНаСкладах.Остатки(
                   |            &Период,
                   |            Номенклатура = &Номенклатура
                   |                И Характеристика = &Характеристика
                   |                И Склад = &Склад) КАК Остатки
                   |
                   |СГРУППИРОВАТЬ ПО
                   |    Остатки.Партия,
                   |    Остатки.Номенклатура,
                   |    Остатки.Склад,
                   |    Остатки.СуммаОстаток";
    Запрос.УстановитьПараметр("Номенклатура",    Номенклатура1);     //Справочник ссылка: Номенклатура
    Запрос.УстановитьПараметр("Период",    Период1);     //Дата
    Запрос.УстановитьПараметр("Характеристика",    Характеристика1);
    Запрос.УстановитьПараметр("Склад",    Склад1);
    РезультатЗапроса = Запрос.Выполнить();
    
    ОстаткиПоПартиям.Очистить();
    ОстаткиПоПартиям.Загрузить(РезультатЗапроса.Выгрузить());
    

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


3.Пользователь видит список партий с остатками суммами и ценами и выбирает нужную - двойной щелчок и получаем событие "Выбор" табличного поля ОстаткиПоПартиям. Его обработчик:

Процедура ОстаткиПоПартиямВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
    СтандартнаяОбработка=Ложь;
    ОповеститьОВыборе(ВыбраннаяСтрока);
КонецПроцедуры


Этой процедурой я передаю в форму ВыпускПродукции всю строку, выбранную пользователем

Теперь несколько слов о главной форме:
1. Обрабочик события нажатия кнопки "ПодборПартии"
Процедура КоманднаяПанель1ПодборПартии(Кнопка)
    ТекСтрока=ЭлементыФормы.Товары.ТекущиеДанные;
    ТекСтрока.Партия=Документы.ПоступлениеТоваров.ПустаяСсылка(); //очистить предыдущий выбор
    
        ФормаПодбора=Обработки.ПодборПартии.ПолучитьФорму("ФормаПодбора",ЭтаФорма);// Важно- обязательно задать подчиненной форме главную (эта форма) иначе эта форма не обработает событие "оповестить о выборе"
    
        // передаем данные для параметров запроса    
    ФормаПодбора.Дата=Дата;
    ФормаПодбора.Склад=СкладИсточник;
    ФормаПодбора.Номенклатура=ТекСтрока.Номенклатура;
    ФормаПодбора.Характеристика=ТекСтрока.Характеристика;

    ФормаПодбора.РежимВыбора=Истина; //указываем что форма открывается для выбора
    ФормаПодбора.ОткрытьМодально(); //Открываем как подчиненную
КонецПроцедуры


2 Форме ВыпускПродукции была назначена обработка события: ОбработкаВыбора
Процедура ОбработкаВыбора(ЗначениеВыбора, Источник)
    ТекСтрока=ЭлементыФормы.Товары.ТекущиеДанные;
    ТекСтрока.Партия=ЗначениеВыбора.Партия;
    ТекСтрока.Цена=ЗначениеВыбора.Цена;
    ТекСтрока.Сумма=ТекСтрока.Количество*ТекСтрока.Цена;
КонецПроцедуры


Все отлично работает


To zetovich
Цитата
Начинающий и "с нуля" не вяжется.

Программированием 1С занялся 2 месяца назад. Изучаю самостоятельно. Большое спасибо вот таким вот форумам

Flexy Подменю пользователя
сообщение 17.02.11, 17:08
Сообщение #9

Танцор с Бубном
Иконка группы
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 230 раз
Рейтинг: 0

Цитата(Salex @ 17.02.11, 18:03) *
Программированием 1С занялся 2 месяца назад. Изучаю самостоятельно. Большое спасибо вот таким вот форумам

Неплохой такой прогресс за 2 месяца smile.gif
Удачи Вам в дальнейшем развитии. 32000000.gif

zetovich Подменю пользователя
сообщение 18.02.11, 11:39
Сообщение #10

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 718
Из: Северодонецк
Спасибо сказали: 121 раз
Рейтинг: 0

Цитата(Flexy @ 17.02.11, 18:08) *
Неплохой такой прогресс за 2 месяца smile.gif
Удачи Вам в дальнейшем развитии. 32000000.gif

ага.
но как то слабо верится что только 2 месяца.
так да и так smile.gif

Fynjy Подменю пользователя
сообщение 19.02.11, 8:29
Сообщение #11

Сенсей Чака Норриса
**********
За вредность
Группа: Пользователи
Сообщений: 1994
Из: Ахметов сити
Спасибо сказали: 333 раз
Рейтинг: 0

За 2 месяца, если человек плотно занимается изучением 1С часов по 10 в день и имеет за собой опыт программирования ООП - он может стать мегамонстром в 1С ...
Тип поля должен быть такой же как и регистратор партий. Т.е. документ конкретного типа.
Остатки.Партия - изврат из 7.7. В 8 есть понятие Регистратор.


Signature

awp Подменю пользователя
сообщение 20.02.11, 11:49
Сообщение #12

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 520
Спасибо сказали: 70 раз
Рейтинг: 51.3

Цитата(Fynjy @ 19.02.11, 9:29) *
Остатки.Партия - изврат из 7.7. В 8 есть понятие Регистратор.


Регистратором может быть любой документ: РН, Списание, Оприходование, Поступление - а партия она и в Африке партия smile.gif


Signature
Бухгалтер - это не профессия! Это диагноз!

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 12.05.24, 22:19
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!