Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 00:12

Помогите пожалуйста новичку в 1C

Автор Yuran9393, 19 окт 2018, 12:30

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

Yuran9393

Всем здравствуйте!С недавнего времени начал заниматься изучениям 1с программирования. И появился шанс устроиться стажеров программиста. Только для этого требуется выполнить вступительные задания. Время очень ограничено и я пока еще все изучаю.
ПОДСКАЖИТЕ ПОЖАЛУЙСТА:
В общем в одном задании требуется создать 1)ДОКУМЕНТ "ПокупкаТовара" с реквизитами: номер
дата
контрагент
договор(принпдлежит контагенту)
товар
количество
цена
сумма.
ТРЕБОВАНИЯ К ДОКУМЕНТУ:Связь договора с его контрагентом.Один договор может быть связан только с 1 контрагентом.А у 1 контрагенту может быть несколько договоров.При изменении цены-пересчет суммы.При изменении суммы -пересчет цены.В договоре сделать реквизит срок оплаты.
И я не могу разобраться договор надо создавать?(в справочнике)
Как связать договор с контрагентом?
И выполнять все в пустой ИБО?
Спасибо за помощь!

oleg-x

Цитата: Yuran9393 от 19 окт 2018, 12:30
Всем здравствуйте!С недавнего времени начал заниматься изучениям 1с программирования. И появился шанс устроиться стажеров программиста. Только для этого требуется выполнить вступительные задания. Время очень ограничено и я пока еще все изучаю.
ПОДСКАЖИТЕ ПОЖАЛУЙСТА:
В общем в одном задании требуется создать 1)ДОКУМЕНТ "ПокупкаТовара" с реквизитами: номер
дата
контрагент
договор(принпдлежит контагенту)
товар
количество
цена
сумма.
ТРЕБОВАНИЯ К ДОКУМЕНТУ:Связь договора с его контрагентом.Один договор может быть связан только с 1 контрагентом.А у 1 контрагенту может быть несколько договоров.При изменении цены-пересчет суммы.При изменении суммы -пересчет цены.В договоре сделать реквизит срок оплаты.
И я не могу разобраться договор надо создавать?(в справочнике)
Как связать договор с контрагентом?
И выполнять все в пустой ИБО?
Спасибо за помощь!
Насчет где выполнять, сам разберешься.
Создаешь справочник контрагентов.
Потом создаешь справочник договор контрагентов и делаешь его не просто справочником, а подчиненным и в качестве владельца указываете справочник контрагентов. Делается это в настройках справочника.
Если все это на управляемых приложениях, то в документе для реквизита ДоговорКонтрагента устанавливаешь связи параметров выбор, таким образом можно будет выбрать договор, только конкретного контрагента.
Изменения сумм, делаешь в событиях при изменении реквизитов.
Помог, нажми спасибо. Не помог, нажми спасибо :-)
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google

Yuran9393

Спасибо большое!Все сделал как Вы сказали работает.
Только насчет этого пункта подскажите:При изменении цены-пересчет суммы.При изменении суммы -пересчет цены.

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
   Сумма=Количество*Цена;
КонецПроцедуры

Верно? Это в документе в "модуле объекта"

oleg-x

Цитата: Yuran9393 от 20 окт 2018, 17:38
Спасибо большое!Все сделал как Вы сказали работает.
Только насчет этого пункта подскажите:При изменении цены-пересчет суммы.При изменении суммы -пересчет цены.

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
   Сумма=Количество*Цена;
КонецПроцедуры

Верно? Это в документе в "модуле объекта"
Не перед записью, а в событие при изменение реквизита суммы, цены и количества на форме.
Итоговую сумму считаешь при изменение реквизита так ТЧ.Итог("Сумма");
Помог, нажми спасибо. Не помог, нажми спасибо :-)
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google

Yuran9393

Олег извините не могу понять
"Не перед записью, а в событие при изменение реквизита суммы, цены и количества на форме.
Итоговую сумму считаешь при изменение реквизита так ТЧ.Итог("Сумма");"

Так же в документе-модуль объекта, надо прописать событие при изменение реквизита суммы, цены и количества на форме?????
не могу понять куда и если не сложно пример напишите пожалуйста

oleg-x

Цитата: Yuran9393 от 21 окт 2018, 07:39
Олег извините не могу понять
"Не перед записью, а в событие при изменение реквизита суммы, цены и количества на форме.
Итоговую сумму считаешь при изменение реквизита так ТЧ.Итог("Сумма");"

Так же в документе-модуль объекта, надо прописать событие при изменение реквизита суммы, цены и количества на форме?????
не могу понять куда и если не сложно пример напишите пожалуйста
Не в модуле объекта, а в модуле формы. Открываете форму, тыкаете на реквизит и в свойствах реквизита находите список событий. Ваше событие "при изменение".
Помог, нажми спасибо. Не помог, нажми спасибо :-)
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google

Yuran9393

Олег посмотри в правильном направлении мыслю?

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
   ОбщаяСумма=0;
   Для каждого СтрокаТЧ Из Товары Цикл
       ОбщаяСумма=ОбщаяСумма+СтрокаТЧ.Сумма;
      СтрокаТЧ.Сумма=СтрокаТЧ.Количество*СтрокаТЧ.Цена;
      СтрокаТЧ.Цена=СтрокаТЧ.Сумма/СтрокаТЧ.Количество;
   
   КонецЦикла;
КонецПроцедуры


Получается считает верно общую сумму,сумму. И так же считает верно при изменении суммы.
Вот только не могу понять не закомментирую данную строку СтрокаТЧ.Сумма=СтрокаТЧ.Количество*СтрокаТЧ.Цена;
при изменении суммы считать не будет.
Подскажи пожалуйста.

Или что то типо этого
//   Если  СтрокаТЧ.Количество*СтрокаТЧ.Цена       Тогда
//         СтрокаТЧ.Сумма=СтрокаТЧ.Количество*СтрокаТЧ.Цена;
//КонецЕсли;
   Если СтрокаТЧ.Количество*СтрокаТЧ.Цена <> СтрокаТЧ.Сумма Тогда
       СтрокаТЧ.Цена=СтрокаТЧ.Сумма/СтрокаТЧ.Количество;
КонецЕсли;

Как сделать чтобы оба условия выполнялись?

bsn-chita

Зайдите на вкладку "Формы" вашего документа и нажмите на изображение лупы  напротив "Документа". Вычисление Суммы(для строки) при изменении Цены и Цены при изменении Суммы надо рассчитывать именно там на форме. В событиях ПриИзменении(). Для доступа к данным текущей строки нужно использовать ТекущиеДанные.

ТекущиеДанные = Элементы.ИмяТабличнойЧастиНапримерТовары.ТекущиеДанные;
ТекущиеДанные.ИмяРеквизитаНапримерЦена = Значение;

Yuran9393

Так не верно? Не правильно работает.
Для суммы:

На клиенте
Процедура ТоварыСуммаПриИзменении(Элемент)
ТекущиеДанные=Элементы.Товары.ТекущиеДанные;
ТекущиеДанные.Сумма=ТекущиеДанные.Количество*ТекущиеДанные.Цена;
КонецПроцедуры;


ДЛЯ ЦЕНЫ:
На клиенте
Процедура ТоварыЦенаПриИзменении(Элемент)
ТекущиеДанные=Элементы.Товары.ТекущиеДанные;
ТекущиеДанные.Ценна=ТекущиеДанные.Сумма/ТекущиеДанные.Количество;
КонецПроцедуры;


БОЛЬШОЕ СПАСИБО ЧТО ПОМОГАЕТЕ!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск