Версия для печати темы (https://pro1c.org.ua/index.php?s=43f8dfced5fe3ddd362d511d01a26541&showtopic=2861)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Вопрос из методички, документ "Заявка на транспорт"

Автор: Said 03.02.11, 12:27

У меня вот какой вопрос, Есть документ "ЗаявкаНаТранспорт" и "ФормированиеБригады". В документе ЗаявкаНаТранспорт при выборе машины доставки нужно что бы автоматически заполнялись поля "Водитель", "Грузчик1" "Грузчик2", из документа "ФормированиеБригадыт" Если за машиной не определена бригада выдатся сообщение "Бригада не сформирована". при этом поле машина сбрасывается. добавлю что это задача из методички "Введение в конфигурирование в систме 1с Предприятие основные объекты".

на основании все информации нужно видеть какя бригада работала на какой машине, какой водиль в скольки доставках участвовал и с каким километражом, также нужно получать состояние счетчика на нач каждого дня.
Создал переодический регистр сведений СостояниеАвтомобиля в нем определил измерения НазначеныйАвтомобиль, Водитель, грузчик1, Грузчик2, ПоказанияСчетчика.
в модуле формы создал обработчик события "МашинаПриИзменении"

прошу сильно не пинать. Заранее Большое Спасибо!

Автор: logist 03.02.11, 12:44

Цитата(Said @ 03.02.11, 12:27) *
Создал переодический регистр сведений СостояниеАвтомобиля в нем определил измерения НазначеныйАвтомобиль, Водитель, грузчик1, Грузчик2, ПоказанияСчетчика.
в модуле формы создал обработчик события "МашинаПриИзменении"

... а дальше ждете что тут кто-то напишет Вам остальной код?
1. Для начала измените регистр, измерение в Вашем случае будет одно, остальное будет ресурсами.

Автор: Said 03.02.11, 12:59

Цитата(logist @ 03.02.11, 13:44) *
... а дальше ждете что тут кто-то напишет Вам остальной код?
1. Для начала измените регистр, измерение в Вашем случае будет одно, остальное будет ресурсами.


я не жду что мне кто то что то напишет, я хочу сам понять и разбраться, что то узнаю из книги что то приходиться спрашивать у Вас, мне не надо готовых ответов, я хочу что бы Вы давали подсказки как и что надо сделать. Думаю Вы меня понимаете?

Автор: Vofka 03.02.11, 13:07

Said, так вопрос в чём? В первом посте вообще не одного вопроса нет.

Автор: Said 03.02.11, 13:19

Цитата(Vofka @ 03.02.11, 14:07) *
Said, так вопрос в чём? В первом посте вообще не одного вопроса нет.

Вопрос таков: Есть документы "ЗаявкаНаТранспорт" и "ФормированиеБригады". В документе ЗаявкаНаТранспорт при выборе машины доставки нужно что бы автоматически заполнялись поля "Водитель", "Грузчик1" "Грузчик2", из документа "ФормированиеБригадыт". Если за машиной не определена бригада выдатся сообщение "Бригада не сформирована". при этом поле машина сбрасывается. Добавлю что это задача из методички "Введение в конфигурирование в систме 1с Предприятие основные объекты".

Я начал делать след. Создал переодический регистр сведений СостояниеАвтомобиля в нем определил измерение НазначеныйАвтомобиль, ресурсы: Водитель, грузчик1, Грузчик2, ПоказанияСчетчика.
в модуле формы создал обработчик события "МашинаПриИзменении" Вот собственно и все, было бы хорошо что бы Вы подсказали последовательность или алгоритм, что за чем нужно сделать. Спасибо.

Автор: logist 03.02.11, 13:55

В обработке события изменения сделать:
отбор из регистра по выбранной машине,
если бригада есть, подставить значения из регистра в реквизиты документа,
иначе очистить выбор машины и выдать сообщение.

Вот Вам и весь алгоритм...

Автор: Said 03.02.11, 14:17

Цитата(logist @ 03.02.11, 14:55) *
В обработке события изменения сделать:
отбор из регистра по выбранной машине,
если бригада есть, подставить значения из регистра в реквизиты документа,
иначе очистить выбор машины и выдать сообщение.

Вот Вам и весь алгоритм...

где можно посмотреть пример похож на этот? что бы понять какими методами пользоваться:?

Автор: logist 03.02.11, 15:55

Цитата(Said @ 03.02.11, 14:17) http://pro1c.org.ua/index.php?act=findpost&pid=17778
что бы понять какими методами пользоваться:?

Что значит какими методами? Описание методов можно найти во встроенном синтаксис-помощнике.

Автор: mister-x 03.02.11, 18:54

Цитата(Said @ 03.02.11, 13:27) http://pro1c.org.ua/index.php?act=findpost&pid=17765. Можемо на цю тему поспілкуватися.

А от пробував спитатися щодо проблем у свого викладача?

ася - 306687675

Автор: mister-x 03.02.11, 19:46

Цитата
А от пробував спитатися щодо проблем у свого викладача?

пробуваЛИ smile.gif, мушу слідувати правилам

Автор: Said 04.02.11, 9:54

Цитата(mister-x @ 03.02.11, 19:54) http://pro1c.org.ua/index.php?act=findpost&pid=17800. Можемо на цю тему поспілкуватися.

А от пробував спитатися щодо проблем у свого викладача?

ася - 306687675

на даный момент доступа к асе нет. поэтому предлагаю поговорить пока так или перейти в личку.

Автор: Vofka 04.02.11, 9:58

Цитата
поэтому предлагаю поговорить пока так

Протестую, иначе тема попадет в офтоп или удалится. Не захлямляйте тему личной перепиской!

Автор: Said 04.02.11, 10:39

Цитата(Vofka @ 04.02.11, 10:58) *
Протестую, иначе тема попадет в офтоп или удалится. Не захлямляйте тему личной перепиской!


Сори, сообщения можете подчистить.

Автор: Said 04.02.11, 11:03

Цитата(Said @ 03.02.11, 15:17) *
где можно посмотреть пример похож на этот? что бы понять какими методами пользоваться:?


Кажется отбор из регистра по выбраной машине сделал.
&НаСервере
Процедура ПолучитьЗначениеАвтомобиля()
    ЗначениеРегистра = РегистрыСведений.СостояниеАвтомобиля;
    СостояниеАвтомобиля = ЗначениеРегистра.ПолучитьПоследнее(Новый Структура("НазначеныйАвтомобиль",  Объект.Машина));    
    
КонецПроцедуры

Как быть дальше? Где можно посмотреть методы? или пример.

Автор: logist 04.02.11, 11:17

Можно не входить в дебри... и разумнее получать отбор на дату

&НаСервере
Процедура ПолучитьЗначениеАвтомобиля()
    СостояниеАвтомобиля = РегистрыСведений.СостояниеАвтомобиля.СрезПоследних(Объект.Дата,Новый Структура("НазначеныйАвтомобиль",  Объект.Машина));    
КонецПроцедуры

Автор: Said 04.02.11, 11:36

Цитата(logist @ 04.02.11, 12:17) *
Можно не входить в дебри... и разумнее получать отбор на дату

&НаСервере
Процедура ПолучитьЗначениеАвтомобиля()
    СостояниеАвтомобиля = РегистрыСведений.СостояниеАвтомобиля.СрезПоследних(Объект.Дата,Новый Структура("НазначеныйАвтомобиль",  Объект.Машина));    
КонецПроцедуры


А как теперь привязаться к проверке есть ли водитель и грузчики...?

Автор: logist 04.02.11, 11:45

Цитата(Said @ 04.02.11, 11:36) *
А как теперь привязаться к проверке есть ли водитель и грузчики...?

Вот спросил сразу, Вам надо написать код, а Вы ломаетесь как девочка... И алгоритм дали, все равно никак... Все Ваши вопросы сходят к написанию кода, пинать то некуда...

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

Автор: Said 04.02.11, 12:05

Цитата(logist @ 04.02.11, 12:45) *
Вот спросил сразу, Вам надо написать код, а Вы ломаетесь как девочка... И алгоритм дали, все равно никак... Все Ваши вопросы сходят к написанию кода, пинать то некуда...

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


Ну Вы же код не написали, это только схема и инструкции что за чем над делать. Это то что надо, спасибо!

Автор: logist 04.02.11, 12:09

Цитата(Said @ 04.02.11, 12:05) *
Ну Вы же код не написали, это только схема и инструкции что за чем над делать. Это то что надо, спасибо!

Я и не собираюсь писать сразу нужный код
Мне каждый раз становиться очень интересно, какой же вопрос будет следующим,... точнее я догадываюсь какой, для себя интересно - угадал или нет smile.gif))

Автор: Марат Башаров 04.02.11, 12:44

Цитата(logist @ 04.02.11, 13:09) *
Я и не собираюсь писать сразу нужный код
Мне каждый раз становиться очень интересно, какой же вопрос будет следующим,... точнее я догадываюсь какой, для себя интересно - угадал или нет smile.gif))

logist я за Вами наблюдаю .... biggrin.gif

Автор: mister-x 04.02.11, 22:40

Цитата(logist @ 03.02.11, 13:44) *
... а дальше ждете что тут кто-то напишет Вам остальной код?
1. Для начала измените регистр, измерение в Вашем случае будет одно, остальное будет ресурсами.

Ні все ж вважаю правильним, Виміри: Водитель, Грузчик1, Грузчик2. Ресурс: НазначенныйАвтомобиль. Оскільки, набір "Водитель, Грузчик1, Грузчик2" - визначає конкретну бригаду. Далі необхідно на певний час отримати: яка машина за якою конкретною бригадою (отим набором) закріплена. Інакше вийде відношення машина - набір "Водитель, Грузчик1, Грузчик2" - які можуть і не бути бригадою (тобто такий набір відсутній у док. "Формирование бригады").

Автор: logist 05.02.11, 2:09

Оригинал задания никто не выкладывал, в топике написано:

Цитата(Said @ 03.02.11, 12:27) http://pro1c.org.ua/index.php?act=findpost&pid=17765
Если за машиной не определена бригада выдатся сообщение "Бригада не сформирована".

Мне отсюда понятно, что ведущим значением должна быть машина. Иначе как Вы собираетесь заполнить в документе Заявка поля "Водитель", "Грузчик1" "Грузчик2", выбрав автомобиль? Отбор по ресурсу осуществить нельзя.

Выкладывайте оригинал задания, мне лично Ваша логика не понятна.

Автор: mister-x 05.02.11, 14:28

Цитата(logist @ 05.02.11, 3:09) *
Оригинал задания никто не выкладывал, в топике написано:


Мне отсюда понятно, что ведущим значением должна быть машина. Иначе как Вы собираетесь заполнить в документе Заявка поля "Водитель", "Грузчик1" "Грузчик2", выбрав автомобиль? Отбор по ресурсу осуществить нельзя.

Выкладывайте оригинал задания, мне лично Ваша логика не понятна.

Ваша правда, але у документі "Формирование бригады" обов'язково мають заповненні бути всі члени бригади і всі ці дані записуватись у регістр - інакше при відборі із регістру щодо прикріпрення авто до бригади вийде бурда smile.gif .

Завдання хіба Вам в ПП напишу або ел. адресу, я ж все-таки погодився не розповсюджувати матеріали smile.gif .

Автор: logist 05.02.11, 14:36

Цитата(mister-x @ 05.02.11, 14:28) *
але у документі "Формирование бригады" обов'язково мають заповненні бути всі члени бригади і всі ці дані записуватись у регістр

Тогда зачем проверять это при выборе машины, и выдавать сообщение что бригады у машины нет...?
Даже если так, то тогда выбор автомобиля в заявку должен осуществляться не из регистра где хранятся бригады, а из справочника "Автомобили", а потом проверятся регистр на наличие там этого автомобиля, и если автомобиль найден то считать бригаду из регистра.

Короче, что я могу сказать - как был задан начальный вопрос - так и был дан ответ, подробности ж никто не оглашал.

Автор: logist 05.02.11, 16:19

Бегло посмотрел задание, собственно выше я был прав:
Выбор автомобиля в заявку должен осуществляться из справочника "ТранспортныеСредства", а потом проверятся регистр "Бригад" на наличие там этого автомобиля, и если автомобиль (т.е. по нему на дату доставки сформирован документ ФормированиеБригады) найден то считать бригаду из регистра.
Отбор регистра обязательно по дате, равной дате доставки в заявке.

Документ "Формирование бригады" должен быть регистратором для регистра бригад, ну и с проверкой заполнения всего состава бригады.

Автор: mister-x 05.02.11, 16:29

Цитата(logist @ 05.02.11, 15:36) *
Тогда зачем проверять это при выборе машины, и выдавать сообщение что бригады у машины нет...?
Даже если так, то тогда выбор автомобиля в заявку должен осуществляться не из регистра где хранятся бригады, а из справочника "Автомобили", а потом проверятся регистр на наличие там этого автомобиля, и если автомобиль найден то считать бригаду из регистра.

Короче, что я могу сказать - как был задан начальный вопрос - так и был дан ответ, подробности ж никто не оглашал.


ТЗ в ПП.

Автор: logist 05.02.11, 16:36

Цитата(mister-x @ 05.02.11, 16:29) http://pro1c.org.ua/index.php?act=findpost&pid=17929 smile.gif

Автор: Said 07.02.11, 9:43

Цитата(Марат Башаров @ 04.02.11, 13:44) *
logist я за Вами наблюдаю .... biggrin.gif

В общем у меня получилось вот что:

&НаКлиенте
Процедура МашинаПриИзменении(Элемент)
    
    ПолучитьЗначениеАвтомобиля();
КонецПроцедуры

&НаСервере
Процедура ПолучитьЗначениеАвтомобиля()
    
    СостояниеАвтомобиля = РегистрыСведений.СостояниеАвтомобиля.СрезПоследних(Объект.Дата, Новый Структура("НазначеныйАвтомобиль",  Объект.Машина));    
    Если СостояниеАвтомобиля.Следующий() тогда
        Объект.Водитель = СостояниеАвтомобиля.Водитель;
        Объект.Грузчик1 = СостояниеАвтомобиля.Грузчик1;
        Объект.Грузчик2 = СостояниеАвтомобиля.Грузчик2;
    Иначе Объект.Машина = Справочники.ТранспортныеСредства.ПустаяСсылка();
        Сообщить("За машиной не закреплено ни одной бригады");
    КонецЕсли;
        
КонецПроцедуры

и пишет такую ошибку, {Документ.ЗаявкаНаТранспорт.Форма.ФормаДокумента.Форма(15)}: Метод объекта не обнаружен (Следующий)
Если СостояниеАвтомобиля.Следующий() тогда
Может я не тот метод выбрал?

Автор: logist 07.02.11, 9:59

Разумеется не тот. У регистра нет метода "Следующий". Читайте синтаксис-помощник!!!!!! Вы задаете много вопросов ответ на которые содержатся во встроенной справке 1С.

Вы написали очередную, извините, херню, даже не почитав что я написал выше, после прочтения задания в оригинале.

Автор: nikolka7070 08.04.11, 13:49

х

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua