Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
24 Июл 2017, 23:37
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Задача для подготовки к экзамену специалист по платформе  (Прочитано 2456 раз)

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

Оффлайн Дмитрий@

  • *****
  • Сообщений: 731
  • РЕПУТАЦИЯ: 133
  • КПД: 18%
  • Ссылка на примеры работ https://yadi.sk/d/ksVluPMB
  • Регистрация: 2015-02-27
    • Skype: ShuplecovDima
  • Сайт: 
  • Профессия: Программист 1С
Предмет:
1С:Зарплата и управление персоналом
Работодатель до собеседования дал задачу, думаю что такая задача есть в экзамене специалиста по платформе. Поэтому выложил ее решение здесь.
Условие задачи.

«Реализуйте возможность партионного учета по принципу FIFO. В качестве исходной использовать каркасную конфигурацию.

Произвести модификацию структуры объектов метаданных, интерфейса прикладного решения в соответствии с требованиями задачи (см. ниже).

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

В документе "Расходная" должна быть возможность указания конкретной партии (для каждой строки). Если в строке указана партия, то должна списываться себестоимость указанной партии. Если же партия не выбрана, то себестоимость должна списываться по методу FIFO.

Прописать проведение документов "Приходная" и "Расходная" по регистру бухгалтерии в разрезе складов. В бухгалтерском учете суммовой и количественный учет товаров ведется на счете "Товары" в разрезе справочника "Номенклатура" и "МестаХранения".

Проводки:

​ Приходная:

o​ Дебет счета " Товары " / кредит счета " Поставщики" на сумму поступления

​ Расходная:

o​ Дебет счета "ПрибылиУбытки" / кредит счета "Товары" на сумму себестоимости

o​ Дебет счета "Покупатели" / кредит счета " ПрибылиУбытки" на сумму в продажных ценах

Сформировать отчеты, используя систему компоновки данных:

По регистру бухгалтерии - "Движение товаров" (сальдо на начало дебетовое, дебетовый оборот, кредитовый оборот, сальдо на конец дебетовое) по счету "Товары" в разрезе субконто этого счета.

На форме отчета пользователь должен иметь возможность выбирать период формирования и склад для отбора. Данные реквизиты заполняются опционально.

Также пользователю должна быть доступна расширенная настройка отчета – настройка схемы компоновки данных.

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

ДвиженияХозрасчетный = Движения.Хозрасчетный;
ДвиженияХозрасчетный.Записывать = Истина;

Блокировка = Новый БлокировкаДанных;

ЭлементБлокировки = Блокировка.Добавить("РегистрБухгалтерии.Хозрасчетный");
ЭлементБлокировки.УстановитьЗначение("Счет",ПланыСчетов.Хозрасчетный.Товары);
ЭлементБлокировки.УстановитьЗначение("Организация",Организация);
ЭлементБлокировки.УстановитьЗначение("Субконто1",Склад);
ЭлементБлокировки.ИсточникДанных = Номенклатура;
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Субконто2","Номенклатура");

Блокировка.Заблокировать();

//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| МАКСИМУМ(РасходнаяНоменклатура.НомерСтроки) КАК НомерСтроки,
| РасходнаяНоменклатура.Номенклатура КАК Номенклатура,
| СУММА(РасходнаяНоменклатура.Количество) КАК Количество,
| СУММА(РасходнаяНоменклатура.Сумма) КАК Сумма,
| РасходнаяНоменклатура.Партия КАК Партия
|ПОМЕСТИТЬ НоменклатураПоПартиям
|ИЗ
| Документ.Расходная.Номенклатура КАК РасходнаяНоменклатура
|ГДЕ
| РасходнаяНоменклатура.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| РасходнаяНоменклатура.Номенклатура,
| РасходнаяНоменклатура.Партия
|
|ИНДЕКСИРОВАТЬ ПО
| Номенклатура,
| Партия
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| МАКСИМУМ(НоменклатураПоПартиям.НомерСтроки) КАК НомерСтроки,
| НоменклатураПоПартиям.Номенклатура КАК Номенклатура,
| СУММА(НоменклатураПоПартиям.Количество) КАК Количество,
| СУММА(НоменклатураПоПартиям.Сумма) КАК Сумма
|ПОМЕСТИТЬ НоменклатураОбщая
|ИЗ
| НоменклатураПоПартиям КАК НоменклатураПоПартиям
|
|СГРУППИРОВАТЬ ПО
| НоменклатураПоПартиям.Номенклатура
|
|ИНДЕКСИРОВАТЬ ПО
| Номенклатура
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ХозрасчетныйОстатки.Субконто2 КАК Номенклатура,
| ХозрасчетныйОстатки.Субконто3 КАК Партия,
| ХозрасчетныйОстатки.СуммаОстаток,
| ХозрасчетныйОстатки.КоличествоОстаток
|ПОМЕСТИТЬ НоменклатураОстатки
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Остатки(
| &Период,
| Счет = &Счет,
| ,
| Организация = &Организация
| И Субконто1 = &Склад
| И Субконто2 В
| (ВЫБРАТЬ РАЗЛИЧНЫЕ
| НоменклатураОбщая.Номенклатура
| ИЗ
| НоменклатураОбщая КАК НоменклатураОбщая)) КАК ХозрасчетныйОстатки
|
|ИНДЕКСИРОВАТЬ ПО
| Номенклатура,
| Партия
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| НоменклатураОбщая.НомерСтроки,
| НоменклатураОбщая.Номенклатура КАК Номенклатура,
| НоменклатураОбщая.Количество,
| НоменклатураОбщая.Сумма,
| ЕСТЬNULL(НоменклатураОстатки.СуммаОстаток, 0) КАК СуммаОстаток,
| ЕСТЬNULL(НоменклатураОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
| НоменклатураСПартиями.Партия КАК Партия,
| ЕСТЬNULL(НоменклатураСПартиями.Количество, 0) КАК КоличествоДляСписанияВПартии
|ПОМЕСТИТЬ НоменклатураОстаткиПоПартиям
|ИЗ
| НоменклатураОбщая КАК НоменклатураОбщая
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| НоменклатураПоПартиям.Номенклатура КАК Номенклатура,
| НоменклатураПоПартиям.Количество КАК Количество,
| НоменклатураПоПартиям.Партия КАК Партия
| ИЗ
| НоменклатураПоПартиям КАК НоменклатураПоПартиям
| ГДЕ
| НоменклатураПоПартиям.Партия <> ЗНАЧЕНИЕ(Документ.Приходная.ПустаяСсылка)) КАК НоменклатураСПартиями
| ЛЕВОЕ СОЕДИНЕНИЕ НоменклатураОстатки КАК НоменклатураОстатки
| ПО НоменклатураСПартиями.Партия = НоменклатураОстатки.Партия
| И НоменклатураСПартиями.Номенклатура = НоменклатураОстатки.Номенклатура
| ПО НоменклатураОбщая.Номенклатура = НоменклатураСПартиями.Номенклатура
|
|ИНДЕКСИРОВАТЬ ПО
| Номенклатура,
| Партия
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| НоменклатураОстаткиПоПартиям.НомерСтроки КАК НомерСтроки,
| НоменклатураОстаткиПоПартиям.Номенклатура КАК Номенклатура,
| НоменклатураОстаткиПоПартиям.Количество КАК КоличествоПродажи,
| НоменклатураОстаткиПоПартиям.Сумма КАК СуммаПродажи,
| НоменклатураОстаткиПоПартиям.СуммаОстаток КАК СуммаОстаток,
| НоменклатураОстаткиПоПартиям.КоличествоОстаток КАК КоличествоОстаток,
| НоменклатураОстаткиПоПартиям.Партия КАК Партия,
| НоменклатураОстаткиПоПартиям.КоличествоДляСписанияВПартии КАК КоличествоДляСписанияВПартии,
| 1 КАК Сортировка,
| НоменклатураОстаткиПоПартиям.Партия.Дата КАК ПартияДата
|ИЗ
| НоменклатураОстаткиПоПартиям КАК НоменклатураОстаткиПоПартиям
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| НоменклатураОбщая.НомерСтроки,
| НоменклатураОбщая.Номенклатура,
| НоменклатураОбщая.Количество,
| НоменклатураОбщая.Сумма,
| ВЫБОР
| КОГДА НоменклатураОстаткиПоПартиям.Партия ЕСТЬ NULL
| ТОГДА НоменклатураОстатки.СуммаОстаток
| ИНАЧЕ ВЫБОР
| КОГДА НоменклатураОстатки.КоличествоОстаток < НоменклатураОстаткиПоПартиям.КоличествоДляСписанияВПартии
| ТОГДА 0
| ИНАЧЕ НоменклатураОстатки.СуммаОстаток - НоменклатураОстатки.СуммаОстаток * НоменклатураОстаткиПоПартиям.КоличествоДляСписанияВПартии / НоменклатураОстатки.КоличествоОстаток
| КОНЕЦ
| КОНЕЦ,
| ВЫБОР
| КОГДА НоменклатураОстаткиПоПартиям.Партия ЕСТЬ NULL
| ТОГДА НоменклатураОстатки.КоличествоОстаток
| ИНАЧЕ ВЫБОР
| КОГДА НоменклатураОстатки.КоличествоОстаток < НоменклатураОстаткиПоПартиям.КоличествоДляСписанияВПартии
| ТОГДА 0
| ИНАЧЕ НоменклатураОстатки.КоличествоОстаток - НоменклатураОстаткиПоПартиям.КоличествоДляСписанияВПартии
| КОНЕЦ
| КОНЕЦ,
| НоменклатураОстатки.Партия,
| 0,
| 2,
| НоменклатураОстатки.Партия.Дата
|ИЗ
| НоменклатураОбщая КАК НоменклатураОбщая
| ЛЕВОЕ СОЕДИНЕНИЕ НоменклатураОстатки КАК НоменклатураОстатки
| ЛЕВОЕ СОЕДИНЕНИЕ НоменклатураОстаткиПоПартиям КАК НоменклатураОстаткиПоПартиям
| ПО НоменклатураОстатки.Номенклатура = НоменклатураОстаткиПоПартиям.Номенклатура
| И НоменклатураОстатки.Партия = НоменклатураОстаткиПоПартиям.Партия
| ПО НоменклатураОбщая.Номенклатура = НоменклатураОстатки.Номенклатура
|
|УПОРЯДОЧИТЬ ПО
| Номенклатура,
| Сортировка,
| ПартияДата
|ИТОГИ
| МАКСИМУМ(НомерСтроки),
| МАКСИМУМ(КоличествоПродажи),
| МАКСИМУМ(СуммаПродажи),
| СУММА(СуммаОстаток),
| СУММА(КоличествоОстаток),
| СУММА(КоличествоДляСписанияВПартии)
|ПО
| Номенклатура";

Запрос.УстановитьПараметр("Организация", Организация);
Запрос.УстановитьПараметр("Период", ?(РежимПроведенияДокумента.Оперативный = Режим, МоментВремени(),КонецДня(ТекущаяДата())));
Запрос.УстановитьПараметр("Склад", Склад);
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.УстановитьПараметр("Счет",ПланыСчетов.Хозрасчетный.Товары);

РезультатЗапроса = Запрос.Выполнить();

ВыборкаНоменклатура = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
СуммаПродажиОбщая = 0;
Пока ВыборкаНоменклатура.Следующий() Цикл
// Вставить обработку выборки ВыборкаНоменклатура
Товар = ВыборкаНоменклатура.Номенклатура;
КоличествоСписать = ВыборкаНоменклатура.КоличествоПродажи;
КоличествоОстатокВсего = ВыборкаНоменклатура.КоличествоОстаток;

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

СуммаПродажиОбщая = СуммаПродажиОбщая + ВыборкаНоменклатура.СуммаПродажи;

ВыборкаДетальныеЗаписи = ВыборкаНоменклатура.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() И КоличествоСписать > 0 Цикл

Если ВыборкаДетальныеЗаписи.КоличествоОстаток = 0 Тогда
Продолжить;
КонецЕсли;

Если ВыборкаДетальныеЗаписи.КоличествоДляСписанияВПартии <> 0 Тогда
Количество = МИН(ВыборкаДетальныеЗаписи.КоличествоДляСписанияВПартии,
ВыборкаДетальныеЗаписи.КоличествоОстаток);
Иначе
Количество = МИН(КоличествоСписать,ВыборкаДетальныеЗаписи.КоличествоОстаток);
КонецЕсли;

Если Количество = ВыборкаДетальныеЗаписи.КоличествоОстаток Тогда
Сумма = ВыборкаДетальныеЗаписи.СуммаОстаток;
Иначе
Сумма = ВыборкаДетальныеЗаписи.СуммаОстаток * Количество / ВыборкаДетальныеЗаписи.КоличествоОстаток;
КонецЕсли;

// регистр Хозрасчетный
Движение = ДвиженияХозрасчетный.Добавить();
Движение.СчетДт = ПланыСчетов.Хозрасчетный.ПрибылиУбытки;
Движение.СчетКт = ПланыСчетов.Хозрасчетный.Товары;
Движение.Период = Дата;
Движение.Организация = Организация;
Движение.Сумма = Сумма;
Движение.КоличествоКт = Количество;
Движение.СубконтоКт[ПланыВидовХарактеристик.Субконто.Склад] = Склад;
Движение.СубконтоКт[ПланыВидовХарактеристик.Субконто.Номенклатура] = ВыборкаНоменклатура.Номенклатура;
Движение.СубконтоКт[ПланыВидовХарактеристик.Субконто.Партия] = ВыборкаДетальныеЗаписи.Партия;

        КоличествоСписать = КоличествоСписать - Количество;

КонецЦикла;

КонецЦикла;

Если не Отказ Тогда
// регистр Хозрасчетный
Движение = ДвиженияХозрасчетный.Добавить();
Движение.СчетДт = ПланыСчетов.Хозрасчетный.Покупатели;
Движение.СчетКт = ПланыСчетов.Хозрасчетный.ПрибылиУбытки;
Движение.Период = Дата;
Движение.Организация = Организация;
Движение.Сумма = СуммаПродажиОбщая;
КонецЕсли;

//}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА

КонецПроцедуры
Ссылка на примеры работ https://yadi.sk/d/ksVluPMB


Оффлайн tubor555

  • *
  • Сообщений: 3
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-01-30
  • Сайт: 
  • Профессия: Ученик 1С
Всем, кто заглянул и обратил внимания доброго времени! Подскажите кто знает где найти "Решение прикладной задачи в 1с". Учусь на прикладной информатике, задали найти с описанием на 5-10 страниц. При чем нужно не просто описание, а рабочий пример. Я конечно в 1с "не в зуб ногой". Наткнулся вот на эту тему, оно не оно? Скачал этот файл с расширением .dt и репу чешу. Как оно вообще должно выглядеть и работать в принципе. Этот кусок готового какого то решения нужно же как то подкидывать в платформу. В общем кто знает куда отфутболить или у кого есть готовое решение любой прикладной задачи...
Заранее спасибо..

Оффлайн Дмитрий@

  • *****
  • Сообщений: 731
  • РЕПУТАЦИЯ: 133
  • КПД: 18%
  • Ссылка на примеры работ https://yadi.sk/d/ksVluPMB
  • Регистрация: 2015-02-27
    • Skype: ShuplecovDima
  • Сайт: 
  • Профессия: Программист 1С
Есть платформа а есть конфигурация. Платформа это программа при помощи которой запускается конфигурация. Выложенный здесь файл является конфигурацией.
Ссылка на примеры работ https://yadi.sk/d/ksVluPMB


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

alex0402
95 Сообщений
oleg-x
93 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
68 Сообщений
Golickoff Golickoff
51 Сообщений
ilyay ilyay
45 Сообщений
AIFrame
42 Сообщений
wise wise
31 Сообщений
Амал
30 Сообщений
ab30ru
24 Сообщений
lansy
22 Сообщений

* Кто онлайн

  • Точка Гостей: 303
  • Точка Скрытых: 0
  • Точка Пользователей: 10
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal