Форум SoftWeb.ru

Форум SoftWeb.ru (https://softweb.ru/index.php)
-   Языки программирования (https://softweb.ru/forumdisplay.php?f=261)
-   -   1С: Повесть о программировании (https://softweb.ru/showthread.php?t=15324)

Overlord 14.12.2006 15:06

1С: Повесть о программировании
 
Этой темой я начинаю повесть о "1С предприятии" и ошибках которые бывают совсем нелепые, а бывают и критические, приводящие к потере данных. Ни чего сверх естественного, просто расскажите кто с какими проблемами сталкивался и как находились решения.

ВНИМАНИЕ!!! Если вы ищите какую либо литературу, проверьте нашу библиотеку может там уже что то есть для вас. ([Ссылки могут видеть только зарегистрированные пользователи. ]). Или же в библиотеке haiboria.ru. ([Ссылки могут видеть только зарегистрированные пользователи. ])
Если у вас есть вопросы по работе в 1С вы можете их задать в теме "[Ссылки могут видеть только зарегистрированные пользователи. ]". В разделе "[Ссылки могут видеть только зарегистрированные пользователи. ]" можете задавать вопросы по программированию в 1С. Если вы ищите конфигурации то зайдите в "[Ссылки могут видеть только зарегистрированные пользователи. ]"

Overlord 14.12.2006 15:10

неверное имя реквизита!
 
Нужно мне было составить список элементов с одинаковым значением реквизита. Можно и запросом с условием, можно и методом выбрать() и в цикле получить() проверить обычным если. Но решил попробовать метод ВыбратьЭлкментыПоРеквизиту(). Не работает и все. Ошибка называется "неверное имя реквизита". Как оказалось имя реквизита ни причем (может, конечно, мне так только кажется). Дело в том что не доконца прочитал описание этого метода. вот концовка:
Цитата:

Метод можно использовать только для реквизитов с установленным признаком ''Сортировка''.
Метод можно использовать только для объектов, созданных функцией СоздатьОбъект.
т.е в свойствах реквизита надо поставить галочку "сортировка"

[Ссылки могут видеть только зарегистрированные пользователи. ]

мелочь, а я долго бился головой об справочники, почему в бухгалтерии работает, а у меня нет. После установки галочки и принятия изменений, метод заработал.

Overlord 14.12.2006 15:26

опять неверное имя реквизита!
 
Вобще меня часто с толку сбивала эта ошибка. Вот и тогда когда мне надо было в журнале показать только документы на определенную организацию.
Есть журнал которому принадлежит три вида докуиентов. Есть графа отбора. После выполнения метода УстановитьОтбор("Имя", Значение) вываливается ошибка
"неверное имя реквизита!"
в синтасис помошнике не написано , что журнал должен быть общим. Да еще эта сообщение, которое заставляет думать что ты опечатался.
[Ссылки могут видеть только зарегистрированные пользователи. ]
Журнал должен быть общим чтоб можно было установить в нем отбор!

Overlord 14.12.2006 15:52

Об позиционировании на форме. 7.7
 
Если вам когда либо захочется зделать красивую форму с вкладками и таблицами значений в размер формы, забудьте сразу о красоте или даже о такой форме. Делал я форму с шестью вкладками и шестью ТЗ. Блин в размер формы растягивается только одна ТЗ. Остальные ни как не реагируют на изменение резмера формы.
С позиционированием элементов диалога в 7.7 вобще дела не ахти. Например если их много (элементов диалога), то они начинают расползаться по форме произвольно :). Ну не совсем произвольно, а например, если выскочит сообщение и верхний край сообщения дотянется до какого нить элемента, то при закрытии сообщения, элемент сползет вниз и может наложиться на кнопки. Бред вабще. Говорят это лечится созданием формы заново.

Overlord 10.01.2007 14:40

Re: 1С: Повесть о программировании
 
Есть два справочника, причем второй подчинен первому. Есть документ в реквизитах которого оба справочника присутствуют. Если вы делаете форму документа и потом пытаетесь выбрать элемент из второго справочника, то вам сначала предложат выбрать владельца. Как бы пропустить этот диалог? Ведь на форме документа уже выбран владелец для второго справочника. Я блин долго и упорно обрабатывал предопределенную процедуру
Код:

ПриНачалеВыбораЗначения()
пытался передать в форму списка значение нужного мне владельца.
Но все гораздо проще оказалось. В конструкторе формы в свойствах элемента диалога на вкладке дополнительно есть поле "Связан с". Вот туда то и надо записать идентификатор нужного владельца.
[Ссылки могут видеть только зарегистрированные пользователи. ]
теперь если в указаной вами переменой хранится элемент из первого справочника, то при выборе элемента из второго справочника он будет использован как владелец.

Overlord 18.01.2007 09:09

Re: 1С: Повесть о программировании
 
Обрабатывал файл Excel в нем порядка 3000 записей. Нужно было записать в базу суммы тех которые есть в нашей базе. Делаю цикл по записям и условие по двум полям, однозначно определяющих элемент справочника. Из всех записей попадает только 100, ну мне то че с того, значит только 100 присутствует у нас в базе. Короче записал и забыл. А потом бухи говорят чей то маловато будет. Стал проверять, действительно, маловато. Вобщем не принебрегайте функцией СокрЛП() при сравнении строк, особенно при работе с Excel.
После того как добавил в свое условие эту функцию, нашлось гораздо больше совпадений
Код:

Если (орг.КПП = СокрЛП(ExcelApp.Cells(сч, 4).Value)) Тогда

Overlord 22.02.2007 11:29

7.7 1С: Повесть о программировании
 
Захотелось разобраться с календарями. Вроде как удобная штука, записал на каждый день длину рабочего (на один периодический отрезок дат) и программа тебе на весь год может его расчитать. Например работаете вы два через два пожалуйста: даем четыре значения календарю 8,8,0,0 и все программа сама расчитает хоть на год вперед все ваши выходные и т.д. Но меня удивило что значение 8.15, например, не равняется 8 часам 15 минутам, что бы задать 8 часов 15 минут надо писать 8.25. Т.е. там не минуты после точки, а сотые доли часа. Во как.

кварт 30.03.2007 13:44

Re: 1С: Повесть о программировании
 
Я вот наткнулся на такой косяк. Когда реквизит регистра строку делаешь 216 символов - работает, 217 - abnormal program terminaton. Есть предположения ?

Padonak-XXI 27.07.2007 07:03

Re: 1С: Повесть о программировании
 
Регистры вешь капризная. у них стоит ограничение на суммарную длинну строк в реквизитах - естественно 250 символов, у тебя в данном случае получается больше :)

AllMustDie 05.12.2007 12:48

Re: 1С: Повесть о программировании
 
1С8 в табличном поле есть номенклатура, единицы и т.д. как добраться до списка выбора единиц. т.е. мне из списка нужно выбирать только те единицы, которые могут быть у данной номенклатуры


Часовой пояс GMT +3, время: 00:07.

Работает на vBulletin® версия 3.8.12 by vBS.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot