Автор |
Тема: Тильда и другие знаки в счете-фактуре. (Прочитано 8322 раз) |
|
px13
Гость
E-мэйл
|
Добрый всем день! Подскажите, пожалуйста, такой вопрос - у нас номера счетов фактур для зачета аванса идут через тильду или через тире. Но при вводе номера со знаком в пункте"по СФ N" в книге покупок выдается ошибка "E-27: 132:14 Это выражение должно выдавать строку, а не число". Можно как - то преобразовать тип, чтобы считывать знаки? Заранее спасибо)
|
|
Зарегистрирован |
|
|
|
Boris, Kiev.
Адепт ФБП с 1996г.
Просмотреть Профиль | E-мэйл
Сообщений: 875
|
|
Re: Тильда и другие знаки в счете-фактуре.
« Ответить #1 В: 19.11.13 в 10:45:50 » |
Цитировать | Править
|
on 19.11.13 в 08:21:21, px13 wrote:Добрый всем день! Подскажите, пожалуйста, такой вопрос - у нас номера счетов фактур для зачета аванса идут через тильду или через тире. Но при вводе номера со знаком в пункте"по СФ N" в книге покупок выдается ошибка "E-27: 132:14 Это выражение должно выдавать строку, а не число". Можно как - то преобразовать тип, чтобы считывать знаки? Заранее спасибо) |
| Безусловно, можно. Там где пишет E-27 откройте соответствующую форму, нажав "E" или посмотрите имя формы в левом нижнем углу, найдите в списке "Формы на клиенте" и откройте её([F4]) для редактирования, перейдите к указанной строке и сделайте изменения, если облом разбираться с языком клипните сюда фрагмент, Вам помогут, но возможно этой поправкой дело не закончится т.к. скорее всего этот контекст вызывается во всех связанных формах и поэтому придёться либо "разведкой боем", либо методично провести все корректировки, быстрее это сможет сделать автор Ваших настроек.
|
|
Зарегистрирован |
|
|
|
px13
Гость
E-мэйл
|
Клипнуть фрагмент - это вот так? *-------------------------если СФ авансовая :tyty si=[length d2] ed=d2 ef=' ' !si>20 ed=[cp d2,1,20] ef=[cp d2,21,40] ! ad='--------------------' af='--------------------' d1='---------' d2='---------' *---------------------------- И буду признателен за разъяснения, потому что мне не лень, а очень много работы, и доходит не сразу, образование бухгалтера, к сожалению, а не программиста(Но я постараюсь понять))
|
|
Зарегистрирован |
|
|
|
Boris, Kiev.
Адепт ФБП с 1996г.
Просмотреть Профиль | E-мэйл
Сообщений: 875
|
|
Re: Тильда и другие знаки в счете-фактуре.
« Ответить #3 В: 19.11.13 в 19:46:31 » |
Цитировать | Править
|
on 19.11.13 в 15:31:27, px13 wrote:Клипнуть фрагмент - это вот так? *-------------------------если СФ авансовая :tyty si=[length d2] ed=d2 ef=' ' !si>20 ed=[cp d2,1,20] ef=[cp d2,21,40] ! ad='--------------------' af='--------------------' d1='---------' d2='---------' *---------------------------- И буду признателен за разъяснения, потому что мне не лень, а очень много работы, и доходит не сразу, образование бухгалтера, к сожалению, а не программиста(Но я постараюсь понять)) |
| Судя по всему, решить Ваш вопрос по чапаевски не получится. Это: si=[length d2] похоже 132-ая строка. Включайте свои логику и старания. d2 - это та переменная, которая поменяла свой тип, после ввода необычного номера оператором. Нужно смотреть выше, как она определяется и там принимать решения к модификации RPT-текста. Нужен RPT-текст "ДО" 132-ой строки и если есть обращения к функциям и(или) подпрограммам, то и эти тексты также будут нужны.
|
|
Зарегистрирован |
|
|
|
px13
Гость
E-мэйл
|
К сожалению, не смог вместить сюда все строки. Прикладываю файл http://yadi.sk/d/R8ZHF_LnD2auD Если я правильно понял, то значение d2 берется из базы. И получается, что записывать в базу надо как другой вид переменной. Или же можно сделать преобразование в самой форме?
|
|
Зарегистрирован |
|
|
|
Boris, Kiev.
Адепт ФБП с 1996г.
Просмотреть Профиль | E-мэйл
Сообщений: 875
|
|
Re: Тильда и другие знаки в счете-фактуре.
« Ответить #5 В: 20.11.13 в 18:14:50 » |
Цитировать | Править
|
on 20.11.13 в 16:43:41, px13 wrote:К сожалению, не смог вместить сюда все строки. Прикладываю файл http://yadi.sk/d/R8ZHF_LnD2auD Если я правильно понял, то значение d2 берется из базы. И получается, что записывать в базу надо как другой вид переменной. Или же можно сделать преобразование в самой форме? |
| search книга покупок ?aa,?d2,?d1,?S,?F,?S2,??,?ri Ваша задача усложняется, т.к. d2 вынимается из поля факта, которые заносятся в ф-к(файл-коэффицентах(это формы которые прописаны в дереве видов операций за проводками)) Вам нужно поработать с деревом видов. Перебрать все типы операций, которые "опираются" на ф-к с контекстом: fact книга покупок ......................... Возможно будет обойтись совсем малой кровью, введя в баллон к ветви-вопросу о номере СФ уточнение S, после этого если в ф-к нет переопределений, то Ваша ошибка может и уйдет(повторюсь, при условии, что в ф-к нет коррекций этого значения), т.к. в случае ввода чисто числового номера СФ он будет передан как текст, а не как число сейчас. Будет не лишним прочитать всё об уточнениях и конечно, что касается S прямо здесь: Начиная с версии 3.18 ФБП:Сервера в тексте баллонной помощи уточнение ·S может следовать за любым дpугим уточнением (напpимеp за ·R или ·X) в следующей за этим дpугим уточнением стpоке. Напpимеp, так: ·R L ·S Пpи этом любое значение, введенное в "Финансы без пpоблем":Клиенте из фоpмы L будет считаться стpокой, даже если эта стpока имеет вид числа. Так стpока 0023456 будет считаться СТРОКОЙ '0023456' и ведущие нули сохpанятся. Внимание: неправильное использование: если записать ·X AAAA ·SU-NDS· ·N здесь ·SU-НДС· будет воспринято как просто ·S, а ·S приоритетнее ·N, если употреблены одновременно. При таком употреблении числа будут считаться строками. Важно: pедактиpование текста баллонной помощи в однопользовательских веpсиях не влечет немедленного пеpесчета вычислительного состояния пpогpаммы. Поэтому состояние будет пеpесчитано только после pестаpта однопользовательской веpсии. но можно и в самой форме: search книга покупок ?aa,?d2,?d1,?S,?F,?S2,??,?ri * boris,kiev 131120 if ~[type D2] D2=[strip[sn D2,21,9]] :YET if [ps [cp D2,[length D2],1],'0.'] D2=[cp D2,1,[length D2]-1]; goto YET;endif endif * boris,kiev 131120 a=1/(1+S/100) коэфф. если требований по стандартной длине этого номера СФ нет и он вводится в ветви-вопросе(но по тексту подозреваю, что этот номер длинный до 40символов и вводится понятно не в ветви), то должно сойти.
|
« Изменён в : 20.11.13 в 19:48:06 пользователем: Boris, Kiev. » |
Зарегистрирован |
|
|
|
Boris, Kiev.
Адепт ФБП с 1996г.
Просмотреть Профиль | E-мэйл
Сообщений: 875
|
|
Re: Тильда и другие знаки в счете-фактуре.
« Ответить #6 В: 22.11.13 в 07:36:17 » |
Цитировать | Править
|
on 20.11.13 в 18:14:50, Boris, Kiev. wrote: но можно и в самой форме: search книга покупок ?aa,?d2,?d1,?S,?F,?S2,??,?ri * boris,kiev 131120 if ~[type D2] D2=[strip[sn D2,21,9]] :YET if [ps [cp D2,[length D2],1],'0.'] D2=[cp D2,1,[length D2]-1]; goto YET;endif endif * boris,kiev 131120 a=1/(1+S/100) коэфф. |
| увы, похоже, что никому не интересно. всплыло к утру, приходится править: search книга покупок ?aa,?d2,?d1,?S,?F,?S2,??,?ri * boris,kiev 131122 if ~[type D2] D2=[strip[sn D2,21,7]] * 7 - это максисмум без ломки отображения, это особенность ФБП, увеличивая этот параметр искажаем отображение, также как добавляя ^ после "." :YET * чистим от незначащих "0" в хвосте. if [ps [cp D2,[length D2],1],'0'] D2=[cp D2,1,[length D2]-1]; goto YET;endif * и последнюю точку if [ps [cp D2,[length D2],1],'.'] D2=[cp D2,1,[length D2]-1]; endif endif * boris,kiev 131122 a=1/(1+S/100) коэфф. Конечно, надежнее и эффективнее контроллировать тип и вид вводимых данных на входе-вводе, чем потом городить огороды при встрече данных разного типа.
|
|
Зарегистрирован |
|
|
|
|
|