Имя: Пароль:
1C
1С v8
Автоматическая установка цен РТУ
0 JedaiMaster
 
04.02.14
06:41
что бы более менее понимать как программировать в 1с, по совету МИСТЯН начал разбираться в коде который уже был написан, собственно сам код который в документе реализация товаров и услуг автоматом ставит цену

Процедура КоманднаяПанельТоварыУстановитьЦену(Кнопка)
    СтруктураПолей = Новый Структура();
    СтруктураПолей.Вставить("Номенклатура",        "Номенклатура");
    СтруктураПолей.Вставить("Услуга"      ,        "Номенклатура.Услуга");
    СтруктураПолей.Вставить("Количество"  ,        "Количество");
    СтруктураПолей.Вставить("Сумма"       ,        "Сумма");
    СтруктураПолей.Вставить("СтавкаНДС"   ,        "СтавкаНДС");
    СтруктураПолей.Вставить("НДС"         ,        "СуммаНДС");
    СтруктураПолей.Вставить("НомерГТД",            "НомерГТД");
    СтруктураПолей.Вставить("СтранаПроисхождения", "СтранаПроисхождения");

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

    // Подготовим таблицу товаров для проведения.
    СтруктураШапкиДокумента = ОбщегоНазначения.СформироватьСтруктуруШапкиДокумента(ЭтотОбъект);
    ТаблицаПоТоварам = ПодготовитьТаблицуТоваров(РезультатЗапросаПоТоварам, СтруктураШапкиДокумента);
    //Для каждого ТекущаяСтрока из Товары Цикл
    СтИнд = ЭтотОбъект.Товары.Количество()-1;
    //ДляСч = 0 по СтИнд Цикл
    Сч = 0;
    Отказ = Ложь;
    СодержаниеПроводки = "Реализация товаров";

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

как я понимаю
1.вначале создается массив
2.с помощью общих модулей собирается информация с самого документа РТУ
(зачем не пойму)
3.с помощью модуля УправлениеЗапасамиПартионныйУчет получаем стоимость
прихода партии?
4. используются модуль документа для того что бы заполнить табл часть.
если я не прав поправте меня
1 Wobland
 
04.02.14
06:49
1. в начале создаётся свет, по-моему. ну или структура. но вовсе не массив;
2. эта шапка потом передаётся промеж всяческих функций и процедур - общий подход;
3. осуществляется расчёт движений;
4. зачем-то используется цикл для перезаполнения цен и налогов в ТЧ;
2 JedaiMaster
 
04.02.14
07:11
(1) СВЕТ??
3 Godofsin
 
04.02.14
07:11
(2) из тьмы
4 Wobland
 
04.02.14
07:20
(2) проверил. свет. И сказал Бог: да будет свет. И стал свет.
5 JedaiMaster
 
04.02.14
07:33
(4) И увидел Бог свет, что он хорош и отделил свет от тьмы
6 Wobland
 
04.02.14
07:33
(5) всё, вот в этом месте я выпал в исключение