Имя: Пароль:
1C
 
Документы по ответственному хранениию.
0 Technik
 
10.02.15
00:16
Здравствуйте, уважаемые.
Дали мне вот такую задачку по организации документов ответственного хранения.
Сделал документ "Приём на ответственное хранение". Параллельно смотрел как реализовано в других документах и удивлялся. В них столько всего.
И я всё больше думаю, что делаю что-то не так и пишу как-то криво.
Вот что получилось у меня.

<H4>Документ с реквизитами:</H4>
    Организация,
    Склад,
    Контрагент,
    ДоговорКонтрагента,
    СуммаДокумента,
    СчетДТ,
    СчетКТ,
    Комментарий.
<H4>Табличная часть "Товары":</H4>
    Номенклатура,
    Количество,
    Цена,
    Сумма.


В модуле ФормаДокумента вот такие процедуры.

Процедура ТоварыКоличествоПриИзменении(Элемент)
        ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(ЭлементыФормы.Товары.ТекущиеДанные, ЭтотОбъект);
КонецПроцедуры



Процедура ТоварыЦенаПриИзменении(Элемент)
    ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(ЭлементыФормы.Товары.ТекущиеДанные, ЭтотОбъект);
КонецПроцедуры



Процедура ОбновлениеОтображения()
    ЭлементыФормы.Всего.Значение = ФормированиеПечатныхФорм.ФорматСумм(ОбщегоНазначения.ПолучитьСуммуДокументаСНДС(ЭтотОбъект));
КонецПроцедуры



Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    СуммаДокумента = ОбщегоНазначения.ПолучитьСуммуДокументаСНДС(ЭтотОбъект);
КонецПроцедуры



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



Процедура ДоговорНачалоВыбора(Элемент, СтандартнаяОбработка)
     мСписокВидовДоговоров = Новый СписокЗначений;
    мСписокВидовДоговоров.Добавить(Перечисления.ВидыДоговоровКонтрагентов.СПоставщиком);
    СтруктураДополнительныхПараметров = Новый Структура();
     РаботаСДиалогами.НачалоВыбораЗначенияДоговораКонтрагента(ЭтотОбъект, ЭтаФорма, Элемент, Контрагент, ДоговорКонтрагента, мСписокВидовДоговоров, СтандартнаяОбработка, СтруктураДополнительныхПараметров);
КонецПроцедуры



Процедура ДоговорПриИзменении(Элемент)
    Если Контрагент = Справочники.Контрагенты.ПустаяСсылка() Тогда
         Контрагент = ДоговорКонтрагента.Владелец;
    КонецЕсли
КонецПроцедуры



Процедура КонтрагентПриИзменении(Элемент)
     Если ДоговорКонтрагента <> Справочники.ДоговорыКонтрагентов.ПустаяСсылка() тогда
        Если Контрагент <> ДоговорКонтрагента.Владелец Тогда
            ДоговорКонтрагента = Справочники.ДоговорыКонтрагентов.ПустаяСсылка();
         КонецЕсли;
    КонецЕсли
КонецПроцедуры


В самом Модуле Объекта лишь процедура обработки проведения:

Процедура ОбработкаПроведения(Отказ, Режим)
    //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
    Для Каждого ТекСтрокаТовары Из Товары Цикл
        // регистр Хозрасчетный
        Движение = Движения.Хозрасчетный.Добавить();
        Движение.СчетДт = ПланыСчетов.Хозрасчетный.ТоварыПринятыеНаОХ;
        Движение.Период = Дата;
        Движение.СчетКт = СчетДТ;
        Движение.СчетКт = СчетКТ;
        Движение.Организация = Организация;
        Движение.Сумма = ТекСтрокаТовары.Сумма;
        Движение.КоличествоДт = ТекСтрокаТовары.Количество;
        Движение.Содержание = Комментарий;
        Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты] = Контрагент;
        Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура] = ТекСтрокаТовары.Номенклатура;
        Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады] = Склад;
    КонецЦикла;
    //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры


В результате работы создаются правильные проводки:
<TABLE WIDTH="90%">
<TR>
<TD>Период<BR>
    Документ<BR>
    Организация</TD>
<TD>СчетДТ</TD>
<TD>СубконтоДТ<BR>
    <BR>
    <BR></TD>
<TD>КоличествоДТ<BR>
    ВалютаДТ<BR>
    Вал.суммаДТ</TD>
<TD>СчетКТ</TD>
<TD>СубконтоКТ<BR>
    <BR>
    <BR></TD>
<TD>КоличествоКТ<BR>
   ВалютаКТ<BR>
   Вал.суммаКТ</TD>
<TD>Сумма<BR>
    Содержание<BR>
    № журнала</TD>
</TR>
<TR>
<TD>09.02.2015 11:12:13<BR>
    Поступление на отв. хранение 001<BR>
    ООО "Наша организация"</TD>
<TD>002.02</TD>
<TD>ООО "Наш Контрагент"<BR>
    Стол Письменный<BR>
    Склад 1<BR></TD>
<TD>3<BR>
    <BR>
    <BR></TD>
<TD>&nbsp</TD>
<TD><BR>
    <BR>
    <BR></TD>
<TD><BR>
    <BR>
    </TD>
<TD>45000<BR>
    <BR>
    <BR></TD>
</TR>
</TABLE>

Занимаюсь программированием в 1С всего ничего, второй месяц самостоятельно.
Проходил курсы по программированию. Сейчас понимаю, что они дали только поверхностные знания и правильно программировать не научили. Надо учиться самому.
В типовых документах часто используются стандартные процедуры из Общих Модулей. Я их все не знаю.
Как же писать правильно? Есть ли хорошие статьи с описанием практики напиания? Подскажие их пожалуйста.
С удовольствием приму критику по сделаному мной документу.
1 Technik
 
10.02.15
00:19
Как править тему-то?
Всё криво получилось.
2 Злопчинский
 
10.02.15
00:26
Никак не правится
3 Злопчинский
 
10.02.15
00:28
Стопудово сало
Например по договору ох оценочная стоимость тмц может выражаться в валюте
4 Technik
 
10.02.15
00:35
Ну про валюту решил сделать потом, если укажут, что она нужна.
5 Злопчинский
 
10.02.15
00:38
А в типовых восьмерочных бухиях нет по ох совсем ничего?
6 Technik
 
10.02.15
00:39
Ах да, забыл сказать про версию.
Бухгалтерия 8.1. Нет, ничего нету про Ответственное хранение документов.
7 Otkr
 
10.02.15
01:19
(6) Какая-какая бухия?
8 Злопчинский
 
10.02.15
02:24
(7) не спугни
9 Technik
 
10.02.15
13:46
Старенькая да? Да, старенькая!
Какая есть.
Независимо от того, куда вы едете — это в гору и против ветра!