Автор Тема: Задача 1.01  (Прочитано 176975 раз)

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

beatthatthing

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Wazdukka Gutsmek
Задача 1.01
« Ответ #390 : Август 20, 2014, 04:18:41 pm »
Цитата aramisov ()
добрый день, тоже начал готовиться. не нашел примера и объяснения этого куска вопроса, не понятно как списание должно быть? по идее с какого склада расход с такого и списываем количество, себестоимость и партию? как можно продавая со склада Транзитный списывать товар с Основного склада? для расчета себестоимости при списании товара необходимо учитывать только момент поступления товара в компанию, вне зависимости от того, на какой склад он пришел. Предположим, для метода списания FIFO первое поступление портсигара произошло на склад «Основной» документом «Приходная накладная №1», а потом на склад «Транзитный» документом «Приходная накладная №2». В этом случае при продаже товара со склада «Транзитный» в первую очередь должна быть списана себестоимость портсигара по документу «Приходная накладная №1», так как она пришла раньше

 То есть Вас не смущает фраза при постановке задачи:  "Складской учет товаров не ведется" ?!
« Последнее редактирование: Август 20, 2014, 04:19:08 pm от Wazdukka Gutsmek »

aramisov

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Александр
Задача 1.01
« Ответ #391 : Август 20, 2014, 04:27:57 pm »
Цитата: beatthatthing;35787
То есть Вас не смущает фраза при постановке задачи: "Складской учет товаров не ведется" ?!

 Где это написано?
 читаю
 Учет товаров ведется в разрезе складов. Поступление и продажа осуществляется с указанием склада (в шапке документа).

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

 Задачи смотрю https://docs.google.com/document/d/19Cv6COjMRcN_qDLbiWmYwp686IXpxE9GHHzQkpa2rME/edit#
 Билет первый оперативный учет


beatthatthing

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Wazdukka Gutsmek
Задача 1.01
« Ответ #392 : Август 20, 2014, 04:50:23 pm »
Цитата aramisov ()
Где это написано? читаю
 Учет товаров ведется в разрезе складов. Поступление и продажа осуществляется с указанием склада (в шапке документа).

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

 Задачи смотрю https://docs.google.com/documen....t#
 Билет первый оперативный учет
Спешу обрадовать, что нумерация задач на форуме идет в соответствии с нумерацией из сборника для подготовки. 
 Например интересующая вас задача имеет номер 1.7 в сборнике.

alex1004

  • Новичок
  • *
  • Сообщений: 7
Задача 1.01
« Ответ #393 : Август 20, 2014, 09:36:59 pm »
Цитата: aramisov;35786
по идее с какого склада расход с такого и списываем количество, себестоимость и партию?


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

 Для реализации такой задачи на регистрах накопления, необходимо использовать два регистра остатков.
 Первый с измерениями: Номенклатура и Склад и ресурсом Количество. Второй с измерениями: Номенклатура и Партия и ресурсами: Количество и Сумма.
« Последнее редактирование: Август 20, 2014, 09:47:04 pm от Александр »

Svetik_1704

  • Пользователь
  • **
  • Сообщений: 21
  • ФИО: Светлана
Задача 1.01
« Ответ #394 : Август 21, 2014, 09:44:52 am »
Цитата: alex1004;35759

 Комментарий к этой задаче человека которому билет попался:

 "Я делал способом описанным здесь на формуме. Для смены учетной политики я сделал месячный регистр сведений. Оказалось не совсем правильно, поскольку учетная политика меняется раз в месяц, но кто сказал, что она должна меняться именно первого числа в начале дня . Упрощение - раз. Далее - не факт, что именно в эту секунду не будет сделан приход или расход. В общем выход один - сделать так, чтобы учетная политика могла устанавливаться на определенный момент времени и меняться хоть сто раз в день. Условие, что учетная политика может меняться раз месяц - это ограничение пользователей."
 


 Именно подобный комментарий меня и смутил. Значит буду задавать наводящие вопросы на экзамене.

masenshi

  • Новичок
  • *
  • Сообщений: 7
  • ФИО: Александр
Задача 1.01
« Ответ #395 : Август 22, 2014, 08:42:39 am »
Цитата: alex1004;35759
Задача по ОУ билета № 3. Формулировка условия: "Учетная политика может меняться каждый месяц, её изменение фиксируется соответствующим документом".

 Комментарий к этой задаче человека которому билет попался:

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


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

 В задаче 1.1 нужно делать периодичность год. Там это даже подчеркивается.
 Если сделать секунду то, возможно, что будет ошибка.

Добавлено (22.08.2014, 08:42)
---------------------------------------------
Пример из сборника задач 2014 года. Модуль проведения расходной содержит:
 //Очистим формируемые наборы, чтобы не было проблем с остатками при оперативном проведении
 Движения.ОстаткиНоменклатуры.Записать();

 Причем для неоперативного проведения этот код тоже будет срабатывать, тогда какой смысл в
 "Удалять автоматически при отмене проведения"?
 Ни о каком быстродействии и речи быть не может.

 Правильнее было бы так:
 Если Режим = РежимПроведенияДокумента.Оперативный Тогда
    Движения.ОстаткиНоменклатуры.Записать();
 КонецЕсли;

 И момент номер 2.
 В примере не парятся и независимо от режима проведения передают параметр в запрос
 Запрос.УстановитьПараметр("Момент", МоментВремени());
 хотя было бы правильнее для оперативного проведения передавать пустую дату. Или по барабану и делать все из примера?


alex1004

  • Новичок
  • *
  • Сообщений: 7
Задача 1.01
« Ответ #396 : Август 24, 2014, 08:40:15 am »
Цитата: masenshi;35804
И момент номер 2.
 В примере не парятся и независимо от режима проведения передают параметр в запрос
 Запрос.УстановитьПараметр("Момент", МоментВремени());
 хотя было бы правильнее для оперативного проведения передавать пустую дату. Или по барабану и делать все из примера?


 На экзамене делайте так, как правильно, а не так как где-либо сказано или написано. Ссылки на сборники, типовые конфигурации там не пройдут. Везде во всех источниках информации могут быть ошибки и не точности, умышленные или нет, Ваша задача их отсеять. Если Вы хорошо понимаете зачем перед передачей этого параметра проверяется режим проведения и почему передается тот или иной вариант, Вас не смутить ни каким не удачным примером.

aramisov

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Александр
Задача 1.01
« Ответ #397 : Август 29, 2014, 02:55:02 pm »
Подскажите пожалуйста я правильно обработку проведения в документе реализация организовал? (извините что так, не нашел как файл прикреплять)

 Процедура ОбработкаПроведения(Отказ, РежимПроведения)

 Движения.Продажи.Очистить();
 Движения.Продажи.Записывать = Истина;

 Движения.ОстаткиНоменклатуры.Очистить();
 Движения.ОстаткиНоменклатуры.Записывать = Истина;

 Если РежимПроведения = РежимПроведенияДокумента.Оперативный Тогда
 Движения.ОстаткиНоменклатуры.Записать();
 КонецЕсли;

 Блокировка = Новый БлокировкаДанных; //Накладываем блокировку
 ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ОстаткиНоменклатуры");;
 ЭлементБлокировки.ИсточникДанных = СписокНоменклатуры; //источник фильтра блокировки
 ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
 ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура","Номенклатура"); // сопосталяем данные между измерением регистра и колонкой таб части
 Блокировка.Заблокировать();

 МетодСписания = РегистрыСведений.МетодСписания.ПолучитьПоследнее(рабочаядата)["МетодСписания"];
 Если МетодСписания = Перечисления.УчетнаяПолитика.ФИФО Тогда
 Убыв = "";
 Иначе
 Убыв = "УБЫВ";
 КонецЕсли;

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

 Результат = Запрос.Выполнить();
 ВыборкаПоНоменклатуре = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Номенклатура"); // обходим по номенклатуре
 Пока ВыборкаПоНоменклатуре.Следующий() Цикл
 Если ВыборкаПоНоменклатуре.КоличествоКСписанию > ВыборкаПоНоменклатуре.КоличествоОстаток Тогда //проверяем есть ли вообще нужное количество
 Сообщение = Новый СообщениеПользователю;
 Сообщение.Поле = "СписокНоменклатуры["+(ВыборкаПоНоменклатуре.НомерСтроки-1)+"].Количество";
 Сообщение.Текст = "На складе: "+ВыборкаПоНоменклатуре.КоличествоОстаток+" нехватает: " + (ВыборкаПоНоменклатуре.КоличествоКСписанию-ВыборкаПоНоменклатуре.КоличествоОстаток);
 Сообщение.УстановитьДанные(ЭтотОбъект);
 Сообщение.Сообщить();
 Отказ = Истина;
 Иначе //Если нужное количество есть
 Если Отказ Тогда // Если хоть одной номенклатуры нехватает проводить остальные смысла нет
 Продолжить;    // Передаём управление в начало цикла чтобы продолжить проверку остальной номенклатуры
 КонецЕсли;
 НужноСписать = ВыборкаПоНоменклатуре.КоличествоКСписанию;

 Партии =     ВыборкаПоНоменклатуре.Выбрать(); // проваливаемся в группировку и начинаем цикл по партиям
 Пока Партии.Следующий() и НужноСписать > 0 Цикл

 Списываем = МИН(НужноСписать,Партии.КоличествоОстаток);

 Движение =    Движения.ОстаткиНоменклатуры.Добавить();
 Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
 Движение.Активность = Истина;
 Движение.Регистратор = Ссылка;
 Движение.Период = Дата;
 Движение.Партия = Партии.Партия;
 Движение.Количество = Списываем;
 Движение.Номенклатура= Партии.Номенклатура;
 Движение.Сумма = Партии.СуммаОстаток*Списываем/Партии.КоличествоОстаток;
 НужноСписать = НужноСписать - Списываем;

 КонецЦикла;
 //Добавим движения по Регистру продажи
 ДвижениеПродажи = Движения.Продажи.Добавить();
 ДвижениеПродажи.Активность = Истина;
 ДвижениеПродажи.Регистратор = Ссылка;
 ДвижениеПродажи.Период = Дата;
 ДвижениеПродажи.Номенклатура = ВыборкаПоНоменклатуре.Номенклатура;
 ДвижениеПродажи.Количество = ВыборкаПоНоменклатуре.КоличествоКСписанию;
 ДвижениеПродажи.Сумма = ВыборкаПоНоменклатуре.СуммаКСписанию;

 КонецЕсли;
 КонецЦикла;
 КонецПроцедуры
« Последнее редактирование: Август 29, 2014, 03:03:04 pm от Александр »

masenshi

  • Новичок
  • *
  • Сообщений: 7
  • ФИО: Александр
Задача 1.01
« Ответ #398 : Сентябрь 03, 2014, 08:33:38 am »
Цитата: aramisov;35912
Подскажите пожалуйста я правильно обработку проведения в документе реализация организовал?

 Неправильно?
 1) Зачем используется ВНУТРЕННЕЕ СОЕДИНЕНИЕ?
 При таком варианте, если товара из документа совсем нет на остатках, документ проведется и ничего не спишется.
 2) Проблема копеек не решена.
 3) Сортировку делать по моменту времени
 4) Зачем писать это:
 Движение.Активность = Истина;
 Движение.Регистратор = Ссылка;
 5) МетодСписания = РегистрыСведений.МетодСписания.ПолучитьПоследнее(рабочаядата)["МетодСписания"];
 Что еще за рабочаядата? Обращаться к ["МетодСписания"] имхо лучше через точку.
« Последнее редактирование: Сентябрь 03, 2014, 08:35:39 am от Александр »

aramisov

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Александр
Задача 1.01
« Ответ #399 : Сентябрь 03, 2014, 03:36:20 pm »
Цитата: masenshi;35975
Цитата: aramisov;35912
Подскажите пожалуйста я правильно обработку проведения в документе реализация организовал?
Неправильно? 1) Зачем используется ВНУТРЕННЕЕ СОЕДИНЕНИЕ? При таком варианте, если товара из документа совсем нет на остатках, документ проведется и ничего не спишется. 2) Проблема копеек не решена. 3) Сортировку делать по моменту времени 4) Зачем писать это: Движение.Активность = Истина; Движение.Регистратор = Ссылка; 5) МетодСписания = РегистрыСведений.МетодСписания.ПолучитьПоследнее(рабочаядата)["МетодСписания"]; Что еще за рабочаядата? Обращаться к ["МетодСписания"] имхо лучше через точку.


 Спасибо
 как решить проблему копеек? думал проблема решается путем сведение к минимуму операции деления.

 рабочаядата это рабочая дата , или надо на дату проведения документа ориентироваться?

MariaZhev

  • Новичок
  • *
  • Сообщений: 2
  • ФИО: Мария
Задача 1.01
« Ответ #400 : Сентябрь 03, 2014, 10:59:46 pm »
Цитата: mulradik;35618
Я купил обучающие курсы по подготовке 1С:Спец по платформе, там эта классическая задача разбирается от и до. Просто одно дело смотреть и понимать, а другое - решать задачу самому, что-то можешь упустить.


 Курс по подготовке к экзамену по 8.3 или по 8.2 еще?
« Последнее редактирование: Сентябрь 03, 2014, 11:00:15 pm от Мария »

masenshi

  • Новичок
  • *
  • Сообщений: 7
  • ФИО: Александр
Задача 1.01
« Ответ #401 : Сентябрь 04, 2014, 03:39:35 am »
Цитата: aramisov;35981
Спасибо
 как решить проблему копеек? думал проблема решается путем сведение к минимуму операции деления.

 http://forum.chistov.pro/index.php?topic=1563.msg35976#msg35976

 
Цитата: aramisov;35981
рабочаядата это рабочая дата , или надо на дату проведения документа ориентироваться?

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

ealekseevost

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Евгений
Задача 1.01
« Ответ #402 : Сентябрь 04, 2014, 09:42:33 am »
Добрый день! Подскажите пожалуйста что делать с кнопкой "Подбор" в расходной накладной? Обязательно ли описывать механизм подбора? Спасибо.

masenshi

  • Новичок
  • *
  • Сообщений: 7
  • ФИО: Александр
Задача 1.01
« Ответ #403 : Сентябрь 04, 2014, 10:26:35 am »
Цитата: ealekseevost;35993
Добрый день! Подскажите пожалуйста что делать с кнопкой "Подбор" в расходной накладной? Обязательно ли описывать механизм подбора? Спасибо.

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

ealekseevost

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Евгений
Задача 1.01
« Ответ #404 : Сентябрь 04, 2014, 11:54:01 am »
Цитата: masenshi;35994
Думаю, что если вы не опишите механизм подбора, то кнопку лучше убрать.


 А, ну отлично...)