Начало / Безопасност / Автоматично заместване на данни от 1C документ. IX. Автоматично заместване на цените в документа при избор на артикули. Попълване на статистически данни

Автоматично заместване на данни от 1C документ. IX. Автоматично заместване на цените в документа при избор на артикули. Попълване на статистически данни

/
Счетоводство за Украйна /
Работа с документи, справочници и отчети

Как да зададете основната организация за заместване в документи

Този раздел описва как да настроите първична организация за автоматично заместване в нови документи.

Инсталиране от директорията

В директорията на организациите (меню "Предприятие" - "Организации") се маркира основната организация в удебелен шрифт. Това означава, че при създаване на нови документи той ще се вмъква автоматично.

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

Свържете код Preoix Име l w 00000001 към Dobro 000000001 DB Do5ro5ut 00000006 DU Do st eka и инсталация 00000005 NF National S0000001 nsho Нашата организация" width="757" height="216" border="0">

ЗАБЕЛЕЖКА
Основната организация се запазва в потребителските настройки. За всеки потребител основната организация се посочва индивидуално.

Подбор на документи по основна организация

В потребителските настройки (меню "Услуга" - "Потребителски настройки") можете да зададете режим за автоматичен избор на документи за основната организация. Това означава, че всички дневници и списъци с документи ще показват документи само от основната организация.

Изборът на документи в журналите се контролира от флага Счетоводство за всички организации. Когато е инсталиран, дневниците показват документи за всички организации. Когато флагът е изчистен, в дневниците се показват само документи за основната организация.

Ако е необходимо, основната организация може да бъде променена директно в потребителските настройки в групата "Основни стойности за заместване в документи и директории".

Задача 1. Създаване на падащ списък

1. Отворете файла Ex03_1.xlsx.

2. На лист Цена Има таблица със стоки с цени.

3. Дайте имена на диапазоните с името на продукта ( Продукт) и ценовата таблица ( Таблица) (Фигура 1). Имената на диапазони са посочени за по-нататъшното им използване във формули и за улесняване на работата с диапазони. Името на диапазона може да бъде зададено чрез полето за име на клетка или в контекстно менюизберете отбор Задайте име(разбира се, в един или друг случай трябва предварително да бъде избран диапазон от клетки, както е показано на фигура 1).

Фигура 1

4. На листа за продажба в колоната Име на продуктасъздайте падащ списък и го попълнете с данни.

За да създадете падащ списък, трябва да изберете клетките (можете да имате няколко наведнъж), в които искате да получите падащ списък и да изберете в раздела данни бутон Проверка на данните (Фигура 2).

Фигура 2

В първия раздел Опцииот падащия списък Тип данниизберете опция списъки въведете в реда Източник= и името на диапазона с необходимите данни (т.е. =Продукт) (Фигура 3). Кликнете добре.

Резултатът от създаването на падащ списък е показан на фигура 4.

Ако наборът от стойности в източника може да се промени, по-добре е да вмъкнете или премахнете данни в средата на списъка.

Фигура 3

Фигура 4

Представяме ви функциите MATCH и INDEX

Функциите MATCH и INDEX се използват главно за автоматично заместване на данни в таблица от даден диапазон.

Синтаксис на функцията

MATCH(търсеща_стойност, масив, тип_съвпадение)

Масиве блок, състоящ се от една колона или един ред.

Match_typeе числото -1, 0 или 1.

Ако съвпадение_типе равно на 1, тогава функцията ТЪРСЕНЕнамира най-голямата стойност, която е по-малка от търсена_стойностили равен на него. Разгледано масивтрябва да бъдат подредени във възходящ ред.

Ако съвпадение_типравни 0, това Функция MATCHнамира първата стойност, която е точно равна на аргумента търсена_стойност.Разгледано масивможе да бъде разстроен.

Ако съвпадение_типе равно на -1, тогава функцията ТЪРСЕНЕнамира най-малка стойност, което е по-голямо от търсена_стойност,или равен на него. View_arrayтрябва да бъдат подредени в низходящ ред.

Ако съвпадение_типе пропуснато, приема се, че е равно на 1 .

функция ТЪРСЕНЕвръща позицията на търсената стойност в масива, а не самата стойност.

функция ИНДЕКСима две форми. Ще разгледаме само един.

ИНДЕКС(таблица; номер_на_ред; номер_на_колона)

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

Нека да разгледаме как работят тези функции, използвайки конкретни примери.

Задача 2. Въведение във функцията MATCH

С помощта на функцията MATCH() определете позицията на продукта с име „Йогурт“ в диапазона Продукт. За да направите това:

1. в електронна книга Ex03_1.xlsxотидете на лист Ценаи поставете курсора на листа във всяка свободна клетка;

2. въведете формулата =MATCH("Yoghurt";Product;0) в тази клетка, т.е. Посочваме с помощта на тази функция, че трябва да намерим елемента „Йогурт“ (текстовата стойност във функциите винаги е посочена в кавички) в диапазона Продукт, съвпадение тип 0 – точно съвпадение;

3. Натиснете Enter. В резултат на това трябва да получите числото 7 (Фигура 5).

Фигура 5

Наистина, ако погледнете гамата Продукт, тогава позицията на киселото мляко съответства на тази цифра. Струва си да запомните, че позицията на стойността в масива, т.е. в даден диапазон, считано от началото на диапазона. Оказва се, че ако добавим нов ред в началото на таблицата с данни, стойността „Йогурт“ ще се премести на ред номер 8, но диапазонът Продуктзапочва със стойността „Мляко“, така че от началото на диапазона позицията на киселото мляко във всеки случай ще съответства на числото 7 (Фигура 6).

Фигура 6

Моля, обърнете внимание, че стойността за функцията MATCH() може да бъде зададена или самата стойност, или името на клетката, в която се намира тази стойност. Например, записът =MATCH(A7;Product;0) ще осигури същия резултат, както когато използвате записа =MATCH("Yogurt";Product;0).

Задача 3. Запознаване с функцията ИНДЕКС

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

Използвайте функцията INDEX(), за да намерите в диапазон Продуктелемент, разположен на пета позиция. За да направите това:

1. в електронна книга Ex03_1.xlsxна лист Ценапоставете курсора на листа във всяка свободна клетка;

2. Въведете следната функция в тази клетка =ИНДЕКС(Продукт;5). Натиснете Enter. Резултатът е представен на фигура 7.

Фигура 7

Обърнете внимание, че посочихме само стойностите на диапазона и номера на реда за функцията INDEX. Не посочихме номера на колоната. Този параметър не е задължителен, ако търсим стойност в таблица (диапазон), състояща се от една колона. Ако трябва да намерим стойност в таблица (диапазон), състояща се от няколко колони, тогава във формулата за по-точно търсене на стойността е необходимо да посочим номера на колоната.

В новата клетка въведете формулата =ИНДЕКС(Таблица;8;2). В резултат на това ще намерите цената на шунката (Фигура 8).

Фигура 8

Автоматично заместване на данни

Когато работите с падащ списък, можете да автоматизирате въвеждането на данни в таблицата. Например, има ценова листа, съдържаща имената на стоките и техните цени. Можете да организирате избор на име на продукт от списъка и автоматично заместване на цената на продукта в крайната таблица.

Автоматичното заместване на данни от справочна таблица се основава на комбинираното използване на функциите INDEX и MATCH.

Задача 4. Комбиниране на функциите MATCH и INDEX

В електронната книга Ex03_1.xlsxна лист Продажбив колоната Цена, използвайки функциите на MS Excel, осигуряват автоматично заместване на себестойността на стоките от листа Цена, в зависимост от стойността, избрана от падащия списък на листа Продажби.

1. Поставете курсора на работния лист в клетка C2 и въведете следната формула в нея:

2. Натиснете Enter. В резултат на това в клетка C2 ще получите цената на продукта, чието име е посочено в съседната колона (Фигура 9). Когато изберете друго име на продукт от падащия списък, стойността на цената ще се промени съответно.

Фигура 9

3. Използвайки маркера за автоматично довършване, дублирайте тази формула в края на таблицата (Фигура 10).

Фигура 10

Нека дешифрираме тази формула. Тази формула започва с функцията MATCH, която ни позволява да намерим позицията на стойността от клетка B2 на работния лист Продажбив диапазона Продуктот очите Ценаи тип точност 0. Например, ако използвате списъка с продукти, който е представен на фигура 10, тогава функцията ТЪРСЕНЕ търси позицията на хляба, чието име е посочено в клетка B2 от колоната Име на продуктав диапазона Продуктна лист Цена. Тази позиция ще бъде равна на 3. Следователно в паметта на компютъра формулата, която въведохме, е

=ИНДЕКС(Таблица, MATCH(B2, Продукт, 0), 2)

ще приеме формата

=ИНДЕКС(Таблица;3;2)

Параметър “3” е резултат от функцията ТЪРСЕНЕ.

След това влиза в действие функцията INDEX, която ще търси в диапазона Таблицана лист Ценастойността, разположена в пресечната точка на третия ред и втората колона. (Моля, напомнете, че гамата Таблицасе състои от две колони). Тази стойност ще бъде цената на стоките, в в този случайхляб = 27.

Задача 5. Дизайн на финалната маса

На лист Продажбив колоната Количествовъведете произволни стойности. Изчислете стойностите в колона Общо.

Задача 6. Самостоятелна задача

Отворете файла Frames.xls . Изисква се автоматизиране на промените в заплатите на лист Персонал .

Например, необходимо е да прехвърлите някои от мениджърите и да прехвърлите висши мениджъри или консултанти на товарачи. Трябва да извършите тази операция за четирима служители. Заедно с позицията трябва да се промени и заплатата.

Създайте нов лист и го наименувайте състояние .

Копиране на лист състояниеколони ДлъжностИ Заплата.

Премахване на дублирани служители. За да направите това:

1. Изберете колоните за позиция и заплата.

2. На табл данни щракнете върху бутона Премахване на дубликати .

3. Премахнете отметката от колоната Заплата.

4. Щракнете върху бутона добре.

За да можете да сменяте позициите, върху листа ПерсоналВ колоната за позиция създайте падащ списък. В този случай ще трябва да промените и официалната заплата; ние ще автоматизираме този процес, така че когато промените позицията си, Excel сам променя заплатата. За целта използваме функциите: ТЪРСЕНЕ и ИНДЕКС.

Насоки

1. Изберете върху листа състояниедиапазон от позиции. Дайте име на избрания диапазон длъжност.

2. Изберете върху листа състояниедиапазон на заплатите. Дайте име на избрания диапазон заплата.

3. На лист служителив колона Заплатавъведете формулата, която ще търсите в работния лист състояниев диапазона длъжностпозиция, съответстваща на позицията на служителя, а след това от диапазона заплаталист състояниевмъкна заплата, съответстваща на намерената позиция.

4. След като въведете формулата, уверете се, че получената заплата действително съответства на заплатата на позицията на служителя от листа състояние.

5. Промяна на заплатата на гл. счетоводител на лист състояние. Проверете дали съответната заплата се е променила на листа служители.

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

За да направите това ви трябва:

    напишете функция RetailPrice, която ще върне текущата цена;

    извикване на функцията, когато към документа се добави нов елемент.

Тъй като такава функция може да се наложи в бъдеще, ще я напишем на „обществено достъпно“ място - в общ модул.

1. Създайте функция Цена на дребнов раздел Общи – Общи модули с име Работа с указатели. Задайте флаг Обаждане на сървъра(така че процедурите за експортиране и функциите на този модул да могат да бъдат извикани от клиента) (фиг. 71a).

ориз. 71а. Общи свойства на модула

2. Поставете следния текст в модула.

Функция RetailPrice(CurrentDate,ServiceNomenclatureElement)Export

//Създаване на спомагателен обект Selection

Избор = Нова структура ("Номенклатура на услуги", Елемент на номенклатура на услуги);

//Вземете текущите стойности на ресурсите на регистъра

ResourceValues=InformationRegisters.Prices.GetLast(CurrentDate, Selection);

ReturnResourceValue.Price;

EndFunction

Нека обясним функцията.

За да получите цената на дребно, трябва да предадете два параметъра на функцията:

    Текуща дата– параметър от тип Date, определя точката на времевата ос, в която ни интересува стойността на цената на дребно.

Тази структура съдържа Изборспоред регистрационните измервания. С негова помощ се определя необходимата размерност на регистъра на Номенклатурата на услугите, която е равна на препратката към елемента на справочника, предадена на функцията.

Име на структурен ключ („H Номенклатура на услугите") трябва да съответства на името на измерението на регистъра, посочено в конфигуратора, и стойността на структурния елемент ( Елемент на номенклатурата на услугите) указва стойността, избрана за това измерение.

Вторият ред съдържа извикване на мениджъра на информационния регистър Цени ( Регистри на цените) и изпълнение на метода RunLast(), който връща стойността на ресурса на последния запис в регистъра, съответстващ на датата, предадена на функцията ( Текуща дата) и регистрирайте измерваните стойности Избор.

Метод GetLatestвръща структура, съдържаща стойности на ресурса, която се съхранява в променлива ResourceValues.

В следващия ред получаваме необходимата цена на дребно, като посочваме името на необходимия регистърен ресурс, разделени с точка ( СтойностРесурси.Цена) и го връща, когато функцията се изпълни.

това. тази функция може да бъде извикана в даден момент.

Трябва да се отвори Форма на документ за изпълнение на услугите(създадена е по-рано). IN Модул формулярнеобходимо добавете процедура при промяна.

За да направите това, щракнете двукратно върху елемента на формуляра Списък с артикули и услуги (фиг. 71b).

ориз. 71б. Елементи на документа за изпълнение на услугата

В прозореца със свойства в събитието WhenChangeсъздайте манипулатор на събитие със следния текст:

&На клиент

Процедура Списък на номенклатури Услуга при промяна (елемент)

//Вземете следващия ред от раздела на таблицата

Ред TabularPart = Elements.List of Nomenclature.CurrentData;

//Задаване на цена

TabularPart Row.Price = Работа с Directories.RetailPrice(Object.Date, TabularPartLine.Service);

Край на процедурата

Нека обясним функцията.

Първият ред вече е известен: първо получаваме текущия ред на табличната част на документа, т.к ще ни трябва по-късно и ще го запазим в променлива RowTabularPart.

След това извикваме функцията Цена на дребно ()от общ модул Работа с указатели.

Първият параметър на функцията е предаване на датата на документа, за който трябва да получите цената. Получаваме датата на документа от основните детайли на формуляра - Обект.Дата.

Функцията връща последната стойност на цената и тази стойност се присвоява на полето Цена в текущия ред на табличната част на документа ( RowTabularPart.Price).

Моля, имайте предвид, че процедурата Списък на номенклатуриServiceWhenChanged()започва да работи в модула формуляр от страна на клиента, т.к Това е интерактивният манипулатор на събития на формуляра. Когато създавате шаблон за тази процедура, платформата автоматично ще постави директива за компилация преди описанието на процедурата &На клиент.

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

Нека проверим горните стъпки и стартираме приложението в режим 1C: Enterprise. Да работим с разработената конфигурация.

ВЪВЕЖДАНЕ НА ДАННИ В БД

1. Въведете поне 8 документа Предоставяне на услуги в приложението.

Въпрос: Замяна на код в поле 1c


Здравейте, моля, кажете ми в кое поле трябва да вмъкна процедура, която отчита броя на дните между датите, намерих самата процедура, но отговорът на този въпрос е не

Има полета - дата на настаняване, дата на напускане и поле за количество, където трябва да попадне разликата между първите две стойности
Към кое събитие трябва да добавите процедурата?

отговор:В събитието „OnChange“ на полето за дата на заминаване:

Въпрос: Автоматичното заместване на данни не работи

отговор:

Благодаря на всички за отговорите:
1) 1C:Enterprise 8.3 (8.3.4.437), Счетоводство за Украйна: версия 2.0.4.3.
2) Особено за nsk1C: „Винаги имате този навик да търсите там, където не е необходимо, в моя въпрос няма нито една дума за основната ставка на ДДС - това е, първо, второ, внимателно прочетете указа, забраняващ продуктите на 1C в Украйна, и тогава вече пишете вашите мисли.."

Благодаря ви за отговора, но бих искал да знам по-точно къде в кода е зададено това.

Въпрос: Полето за въвеждане и Enter накрая


Управлявани форми, работа в уеб клиент.
Ситуация: програмиран скенер на F7 + баркод + enter. Опитах много опции, но кодът не може да бъде прочетен чрез „ShowValueInput“. Отказах се от този вариант.
2. Създаден формуляр с поле за въвеждане. Използвайки F7, формата се отваря, кодът се появява в полето за въвеждане, въведете, след това натиснете и него (отметнахте го в полето текстов документ). Опитвам се да хвана събитието Край на въвеждането на текст, но не работи, защото... работи, когато физически натиснете enter на клавиатурата. Събитието AutoFit не е най-добрият вариант за мен, защото... Баркодът може да се въведе ръчно и тогава трябва да измисля някаква патерица, за да заобиколя малкото забавяне между кликванията.
Кажете ми, моля, има ли по-лесни опции?

отговор:() формата се отваря, кодът се предава - събитията не се обработват

Въпрос: ACS справка и таблично поле


Създавам отчет с помощта на ACS. Как мога да покажа резултата в поле на таблица? Не в поле в документ с електронна таблица, а в поле на таблица.

отговор:Полето на документ с електронна таблица е елемент на формуляр (данните се показват в него), който принадлежи към атрибута (формуляр) на документа на електронната таблица.
Записвате стойност в документ с електронна таблица и полето за документ с електронна таблица показва тази стойност за вас.
Как мога да напиша стойността там?

Въпрос: Фокусът върху полето работи странно


Самостоятелно написана конфигурация на 1C (8.3.8.2088), управлявани форми, такси интерфейс.

Прикачвам събитието OnChange към полето със следния код:

1C
1 2 3 4 StandardProcessing = False;

SelectionData = NewValueList;

SelectionData. Add(Object.Number) ;

Слагам код в края на въвеждането на текст

Всичко работи, но някак си е криво.

Елементът получава фокус, но някак си само наполовина, както се вижда на снимката:

отговор:Стана след кода:

Тоест жълтата рамка и дизайнът на полето са изчезнали. Работи, но не е красиво, хваща окото.


Е, накратко, когато номерът се промени, се появява форма с букви, където лицето попълва причината за промяната, ако човекът просто затвори формата, тогава се връща старата стойност и фокусът остава в полето. Има ли други идеи как най-добре да направите това?
Въпрос: Поле на таблицата на формуляра

добър ден

Има стандартна форма за избор на артикул (ut11), която не показва името, а само номера на артикула!

Опитах се да върна стандартните настройки на формата - безуспешно, полето/колоната не се показва.
Конфигуратор:

Нивите имат дин. Списъкът е настроен на „Използвай винаги“.

Дори отстраняването на грешки в OnFormCreate(), както и OnOpen(), показва това

Elements.ListAdvancedSearchNomenclature.SubordinateElements
налично, всичко е в режим на видимост и достъпност, няма функционални опции!

отговор:

тогава о! Току-що успях да плъзна полето за име в друга група и то не стана видимо,
и на първия бутон Все още не беше възстановен, бях сигурен, че ще ви помогне.

Въпрос: Как мога да покажа кода вместо името, когато избирам елемент от директория?


има раздел. част, съдържа поле с тип directorylink. Как мога да покажа кода на атрибута вместо името, когато избирам елемент в това поле? (управлявани формуляри)

отговор: Tklwegsd,))) Да точно това е въпроса

Съобщение от полакс

Не можете ли просто да добавите полето за код към таблицата?

Въпрос: Полето за избор на селекция в отчета SKD


Здравейте момчета, имам въпрос. Искам да покажа полето за избор на избор в отчета, но нещо ме спира, имам нужда от вашия съвет...

За полето контрагентите въведоха следния код, той прави вътрешен избор, но как мога да покажа изгледа за сравнение за полето отляво и да го свържа с Потребители?

1C
1 2 3 4 5 6 7 8 9 10 11 Параметър за експортиране на процедура UsersOnChange(Element) = ComposerSettings. Настройки. Параметри на данните. Find ParameterValue(NewDataCompositionParameter("Users") ) ; Параметър. Стойност = Потребители;Параметър. Използване = Вярно; Елемент за избор = Композитор на настройките. Настройки. Избор. Елементи. Добавяне(Тип(„Елемент за избор на състав на данни“

отговор: ) ) ;Елемент за избор. ComparisonView = DataCompositionComparisonView. Равно; Елемент за избор. LeftValue = NewDataCompositionField(

„Отговорен за ResponsiveRequest“
) ) ;) ;

Елемент за избор. RightValue = Потребители;


Край на процедурата Детмонт, премахвам кода, има само система за контрол на достъпа и поле за избор на формата - празна справка...

Добавено след 1 час и 50 минути
, разбрах защо имаше празен отчет при избор на система за контрол на достъп, имаше условие в заявката на системата за контрол на достъпа за потребители - изтрих го и всичко работи. Благодаря за съветите)

отговор:Като цяло, както и да въртях колоните през data compositor, не успях да ги добавя (Без код). Най-вероятно това е невъзможно, тъй като не атрибутът ds form е отговорен за колоните, а елементът на формуляра, което е логично. Линкерът контролира данните - елемента на формуляра - дисплея (включени колони).
Тоест, без програмно увеличаване на подчинените елементи на Form Element, вие няма да можете да ги промените.
Благодаря на всички

Въпрос: Въвеждане на базата на полето за съобщение в ЛС не се попълва


Колеги помагайте Не е типично въвеждане на базата на документа в ЗУП 2.5, съобщение - полето в ЛС не е попълнено, въпреки че е попълнено - тип Дата. Код в обработката на попълване.
Ако въведете данните през формата, тя извършва...

отговор: OMG той се закле в друго поле - просто тази колона беше скрита) когато се попълни в интерфейса, тя се копира от полето за начална дата