ПредишенСледващото

Изчислява стойността пряко в електронна таблица документ, VR-онлайн - безплатно електронно списание за
95% от работното си време аз трябва да похарчите за програмиране под 1С платформа: Enterprise 8.2. Работата ми е неразривно свързано с разработването от 1C: Enterprise вече няколко години и през това време успях да спестят достатъчно добра база от знания. Изглежда, че структурата на идеята и пишат строго за програмиране под любим сайт на платформа. И все пак това желание му дойде времето, но никога не разполагате с достатъчно време. На работа, особено върши работата, както и на КП не е достатъчно, трябва да тичам вкъщи 1C / PHP буря и работа по различни допълнителни проекти. Тук се оказва, че времето е съвсем малко и това е малко по-Искам да посвети на семейството (в действителност, семейството иска да посвети цялото си свободно време, но това е допълнителна работа, за да се даде нереалистично). Победи време да напиша няколко килобайта на текст за VR често е изключително трудно. Това тъжно влизане, искам да се отговори на писмото веднага на въпроса: "Spider_NET, къде изчезна?".

Добре, сега за случая. Миналата седмица взех един бърз нескопосан прост доклад за нашия счетоводен отдел. Работата е много малко - писмено искане, подадена на данните и готово. Ако не е малко ", но". В доклада е имало графа "Други", данните за които не могат да бъдат получени по време на формирането на доклада. За конкретна линия на данни могат да бъдат или да не са. Ръководителят веднага дойде решението: "е необходимо да се приложи възможността за редактиране на съответния документ клетки за електронни таблици и организиране на превръщането на обобщени области." Подобно нещо сложно, но до този момент с подобни проблеми се сблъскват и за първи път трябваше да смачка главата му малко.

Опирайки се на лист хартия груб план за действие, аз започнах да се приложи. В края на краищата, аз се следната последователност от действия:

1. Определете оформлението на клетка на таблицата на документа, стойностите на които ще бъдат редактирани. В инспектор на обекта (все още не знам как това нещо, наречено език 1S'nikov, така че по навик използваме интерпретация Delph'yachyu) за такива клетки изложи собственост "включва" и изберете подходящия тип данни (в моя случай "Номер "). За улеснение на редактиране и показване на въведените данни се препоръчва също да се определи стойността на имота "Format" и "формат за редактиране". За протокола, аз си сложа "CC = 15; CHDTS = 2; * Р = 3,0. "

2. документ, електронна таблица, която ще бъде изход (I се е намирал във формуляра) създаде манипулатор събитие "PriIzmeneniiSoderzhimogoOblasti". Това събитие се случва винаги, докато редактирате всеки документ поле таблица. В тялото на работещия пиша за следния код:

TablichnyyDokumentPriIzmeneniiSoderzhimogoOblasti Процедура (Елемент пространство) = TabDok ElementyFormy.TablichnyyDokument; // функция "PoluchitNomeraOblasteyDannyh" връща структура, която съдържа // колоните позиция от данни, които трябва да бъдат редактирани. Пълният код е достъпен // функцията по-долу. NomeraOblastey PoluchitNomeraOblasteyDannyh = (); NomeraOblastey.OblastDannyhNiz TabDok.VysotaTablitsy = - 3; // Ако токът координира поле влезете в списъка за редактиране, можете да започнете да редактирате // Ако Oblast.Levo> = NomeraOblastey.KolonkaNachisleno И Oblast.Levo <= НомераОбластей.КолонкаСуммаКВыплате И Область.Верх>= NomeraOblastey.OblastDannyhVerh И Oblast.Verh <= НомераОбластей.ОбластьДанныхНиз Тогда //Получаем введенные пользователем значения СуммаНачислено = ТабДок.Область(Область.Верх, НомераОбластей.КолонкаНачислено).Значение; СуммаНалогНаДоходы = ТабДок.Область(Область.Верх, НомераОбластей.КолонкаНалогНаДоходы).Значение; СуммаПрочие = ТабДок.Область(Область.Верх, НомераОбластей.КолонкаПрочие).Значение; //Расчитываем итоги по строке СуммаУдержаноВсего = СуммаПрочие + СуммаНалогНаДоходы; СуммаКВыплате = СуммаНачислено - СуммаУдержаноВсего; //Выводим в область расчитанное значение ТабДок.Область(Область.Верх, НОмераОбластей.КолонкаВсего).Значение = СуммаУдержаноВсего; ТабДок.Область(Область.Верх, НомераОбластей.КолонкаСуммаКВыплате).Значение = СуммаКВыплате; //Приступаем к расчету итогов ИтоговоеЗначение = 0; //считаем итог по колонке Для сч = НомераОбластей.ОбластьДанныхВерх ПО НомераОбластей.ОбластьДанныхНиз-1 Цикл ИтоговоеЗначение = ИтоговоеЗначение + ТабДок.Область(сч, Область.Лево).Значение; КонецЦикла; ТабДок.Область(НомераОбластей.ОбластьДанныхНиз, Область.Лево).Значение = ИтоговоеЗначение; КонецЕсли; КонецПроцедуры

Надявам се, че ако възникне разбирането на тази процедура проблеми, и ако това е така, тогава можете да погледнем само PoluchitNomeraOblasteyDannyh () функция код:

функция PoluchitNomeraOblasteyDannyh () Връщане нова структура ( "KolonkaNachisleno, KolonkaNalogNaDohody, KolonkaProchie, KolonkaVsego, KolonkaSummaKVyplate, OblastDannyhVerh, OblastDannyhNiz", 29, 38, 45, 52, 60, 22); KonetsFunktsii

Функцията се състои от една линия и всичко, което се случва в него, защото това е формирането на структури със стойности на колони в произход.

През целия си практика трябва да обърнем внимание на този проблем, е възникнало само веднъж, и аз не съм сигурен, че нещо подобно ще се появят в близко бъдеще, но трябва да сме подготвени за всичко. Възможно е, че нещо такова ще се намира теб. Ако това се случи, аз се надявам моя пост ще ви позволи да спаси поне малко време.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!